无法让 file_exists 工作

can't get file_exists to work

我正在尝试做一些看似简单的事情:如果用户想要更改图片,他们可以,如果没有图片,他们可以上传一张。我想先确定照片是否已经存在。如果是,它的文件名是 site_id.jpg。变量 $site_id 将正确的照片与正确的用户联系起来。这是我的代码:

<?php
$image_exists="";
$image_exists=file_exists('/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg');

if ($image_exists) {
    echo $image_exists;
    echo $site_id;
?>
<img src="/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg" />

echo 语句用于故障排除,<img src> 用于向我展示照片,同样只是用于故障排除。

所以,问题来了:"file_exists" 说文件存在 (returns 1),即使 none 存在。我知道 none 存在,因为 (a) 数据库中没有文件,并且 (b) 我得到标准 "no image file exits" 图标(带有问号的正方形)代替照片。

如果我为文件命名而不是使用 '.site_id'.jpg,它应该 returns false。如果没有文件名,只有以 /160/ 结尾的路径,file_exists returns 为真,可能是因为目录“160”存在。

为什么 file_exists 说文件存在而实际上不存在?????

您的网络服务器将无法访问 /home/tippc0 目录。它将从可能是 public_html 文件夹的 Web 服务器根目录导航,因此它在此处查找文件

/home/tippc0/public_html/observations_images/160/

但试图从

输出文件

/home/tippc0/public_html/home/tippc0/public_html/observations_images/160/

它找不到,所以当它试图显示它时你的图像被破坏了。要解决此问题,请确保文件存储在可从 Web 服务器访问的位置。如果 public_html 是您的网络服务器根目录,请像这样制作您的 img 标签:

<img src="/observations_images/160/<?php echo $site_id; ?>.jpg" />