PHP - file_exists无法工作,即使文件存在于目录中

3

我正在尝试验证目录中是否存在文件。当我使用这段代码时,它可以工作——图像被显示出来:

<?php 

  $imgId=0; 
  $filename='../uploadedimages/project-'.$item->id.'-'.$imgId;

  echo "<img src='".$filename."' ></img>";

?>  

当我使用file_exists函数时,相同的代码不起作用:

<?php 

  $imgId=0; 
  $filename='../uploadedimages/project-'.$item->id.'-'.$imgId;

  if (file_exists($filename)) {                             
    echo "<img src='".$filename."' ></img>";                
  }

?>  

我的问题很简单:什么鬼??

1
您的文档根目录与服务器文档根目录不同... 因此,file_exists()使用脚本所在的文件夹作为参考目录。加载<img>则是从您的Web服务器的根目录引用。 - RichardBernards
4
file_exists 函数需要文件系统路径作为参数。 - Aleksei Matiushkin
1
附注:</img>不需要。 - Funk Forty Niner
我以为这是文件系统路径。那么文件系统路径是什么? - Tomas Turan
运行phpinfo()函数,它会给你显示系统路径。 - Funk Forty Niner
显示剩余4条评论
2个回答

2
你可以使用$_SERVER['DOCUMENT_ROOT']来知道你所在的位置。
然后尝试类似这样的内容:
$filename=$_SERVER['DOCUMENT_ROOT'].'uploadedimages/project-'.$item->id.'-'.$imgId;

但首先您需要确保路径存在。


0
在 Linux 服务器上,在使用 file_exists 函数之前,请尝试将文件访问权限更改为 755。 chmod 755 文件名.ext

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接