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

时间:2014-08-28 13:49:13

标签: php image verification

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

 <?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";
 }
 ?>

问题:我的本地网络服务器说即使我在浏览器中复制粘贴网址时文件也不存在,我可以看到图片。

如何让条件说文件确实不存在?

3 个答案:

答案 0 :(得分:1)

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

   <?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

答案 1 :(得分:0)

您可以尝试使用真实的图像路径:

<?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";
 }
 ?>

答案 2 :(得分:0)

使用

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

用于测试文件。