Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';无法使文件“”正常工作_Php_File Exists - Fatal编程技术网

Php can';无法使文件“”正常工作

Php can';无法使文件“”正常工作,php,file-exists,Php,File Exists,我试着做一些看似简单的事情:如果用户想要更改图片,他们可以,如果没有图片,他们可以上传一张。我想首先确定照片是否已经存在。如果是,则其文件名为site_id.jpg。变量$site_id将正确的照片与正确的用户连接起来。这是我的密码: <?php $image_exists=""; $image_exists=file_exists('/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg'); if ($ima

我试着做一些看似简单的事情:如果用户想要更改图片,他们可以,如果没有图片,他们可以上传一张。我想首先确定照片是否已经存在。如果是,则其文件名为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语句用于故障排除,而
用于向我显示照片,同样也是用于故障排除

所以,问题是:“file_exists”表示文件存在(返回1),即使不存在。我知道不存在,因为(a)数据库中没有文件,(b)我得到了标准的“无图像文件退出”图标(带有问号的正方形)来代替照片

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


为什么
file\u存在
说一个文件存在,而它不存在

您的web服务器将无法访问/home/tippc0目录。它将从web服务器根目录(可能是public_html文件夹)进行导航,以便在此处查找文件

/home/tippc0/public\u html/observations\u images/160/

但是试图从中输出文件

/home/tippc0/public\u html/home/tippc0/public\u html/observations\u images/160/

它找不到,因此当它试图显示图像时,图像被破坏。要解决此问题,请确保文件存储在可以从web服务器访问的位置。如果public_html是您的web服务器根目录,请将您的img标记如下:


.jpg”/>

-但最好在处理之前验证$site\u id,图像的输出html应为
.jpg”/>
,谢谢您,埃斯科瓦尔先生。你的答案被整合到下面Ethan22的答案中,这很有帮助。另一个问题:
语句为什么要包含
谢谢。这有帮助。它允许我看到实际上有一个图像文件,即使我的其他代码没有看到它。我将不得不处理其他代码(我在这里没有引用,也不是本文的一部分)。