我如何知道我的图像是否存在于服务器上?(PHP)


How do I know if my image exists on the server? (PHP)

我有一个简单的代码,用于检查服务器中是否存在文件。

 <?php
 $filename = 'www.testserver/upload/productimg/IN.ZL.6L_sml.jpg';
 if (file_exists($filename)) {
      echo "The file $filename exists";
 } else {
      echo "The file $filename does not exist";
 }
 ?>

问题:我的本地Web服务器说该文件不存在,即使当我在浏览器中复制粘贴url时,我可以看到图像。

我如何才能使条件表明该文件并不真正存在?

另一个选项是,发出请求并检查响应标头:

   <?php
    $headers = get_headers('http://www.example.com/file.jpg');
    if($headers[0]=='HTTP/1.0 200 OK'){
       return true; // file exists
    }else{
       return false; // file doesn't exists
    }
    ?>

代码示例:
http://codepad.viper-7.com/qfnvme

对于图像的真实路径,您可以尝试:

<?php
 $filename = 'www.testserver/upload/productimg/IN.ZL.6L_sml.jpg';
 $testImage  = @file_get_contents($filename);
 if ($testImage != NULL) {
    echo "The file $filename exists";
 } else {
    echo "The file $filename does not exist";
 }
 ?>

使用

$filename = $_SERVER["DOCUMENT_ROOT"]."/upload/productimg/IN.ZL.6L_sml.jpg";

用于测试文件。