2017-05-09 18 views
0

の場合には動作しません。私は、私は次のコード

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
     $("#btn").click(function(){ 
      jQuery.ajax({ 
       url : 'http://example.com/TEST/images.php', 
       type : 'POST', 
       data : { 
        name : 'black-ring1.gif' 
       }, 
       success : function(data, status) { 
        if(data){ 
         alert(data); 
        } 
       } 


      }); 
     }); 
    }); 
    </script> 
    </head> 
    <body> 

    <p id="btn">Button</p> 
    </body> 
    </html> 

実行私の「images.php」ファイルを持っているファイル内の「test.phpを」と呼ばれるファイルを持っていますajaxが次のコードをconteainsと呼ぶとき。 「images.php」file_exists($のURL)内部

<?php 
$image_name = $_POST['name']; 
$src = "http://example.com/images/icons/" . $image_name; 

if(file_exists($src)){ 
    echo "Exists"; 
}else{ 
    echo "Does not exist"; 
} 

は常に間違った答えを私に与えます(存在しない)..私は$ URLが実際に与えられたURLに出て..しかし、なぜそれが動作しません確信しています。どのように私はそれを動作させることができます...助けてください。ありがとう..

+0

'file_exists()'はファイルをチェックします。 URLはファイルではありません。 –

+0

この状況で 'file_get_contents()'を使うことができるかもしれませんし、curlを利用することもできます。 'file_get_contents()=== false'エラーです。ファイルへのローカルアクセス権がある場合は、ローカルファイルパスと基本的なファイル操作を使用する必要があります。これは長期的にはパフォーマンスが向上するためです。 – Mic1780

答えて

0

file_existsは、http://のURLで使用することはできません。 documentation

この関数は、一部のURLラッパーでも使用できます。 ファミリの機能をサポートするラッパーを確認するには、Supported Protocols and Wrappersを参照してください。

あなたがそのリンクをたどり、その後 http://リンクをたどった場合、それが言う

は(STATをサポートしています)いいえ

ない

代わりに、あなたは、単にURLを開こうとすることができます。成功すると、URLが存在します。

<?php 
$image_name = $_POST['name']; 
$src = "http://example.com/images/icons/" . $image_name; 

if($fh = fopen($src)){ 
    echo "Exists"; 
    close($fh); 
}else{ 
    echo "Does not exist"; 
} 
0

まず、あなたは、URLが、このコードは、このSO

からである

if(is_url_exist($src)){ 
    echo "Exists"; 
}else{ 
    echo "Does not exist"; 
} 

を存在するかどうかをチェックするためにCURLを使用することができ、その後

(!empty($_POST["name"])) { 
    $image_name = $_POST['name']; 
    $src = "http://example.com/images/icons/" . $image_name; 
}else{ 
    echo "no, name"; 
} 

名を渡すことを確認する必要があります

function is_url_exist($url){ 
    $ch = curl_init($url);  
    curl_setopt($ch, CURLOPT_NOBODY, true); 
    curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

    if($code == 200){ 
     $status = true; 
    }else{ 
     $status = false; 
    } 
    curl_close($ch); 
    return $status; 
} 

あなたもこのSO

if (getimagesize($src) !== false) { 
     echo "Exists"; 
    }else{ 
     echo "Does not exist"; 
    } 
0

file_exists(から試すことができます)ファイルをチェックします。 URLはファイルではありません。あなたが探しているイメージファイルがローカルサーバー上にある場合、あなたはそれへのフルパス名を使用することができます。

if (file_exists('/path/to/images/foo.png')) { 
    ... 
} 

ファイルがリモートサーバー上にある、あなたがいることをテストする場合それが有効である参照URL、あなたはそれに対してHEADリクエストを実行するためにCURLを使用する場合があります。

あなたが実際に画像の内容を必要としない限り、これは実際にフルイメージをダウンロードしますので、私は、file_get_contents($url)のようなものをやってお勧めしませんし、あなたとリモートサーバーの両方に帯域幅を無駄にしてしまいます。