PHP file_exists不起作用

时间:2011-08-28 20:14:55

标签: php file exists file-exists

我在PHP中遇到file_exists函数的问题,它总是返回false,虽然文件在那里,因为我可以删除if语句,它显示正常。

$filename = $_SERVER['DOCUMENT_ROOT']."/images/profilepictures/1.png";
if (file_exists($filename) == true)
{
    $output .= '<img src="'.$filename.'" alt="profile picture" width="200"/>';
}

$filename回声为:

/home/content/k/e/r/kernelkev/html/images/profilepictures/1.png

我一直在谷歌搜索这个,大多数答案是使用DOCUMENT_ROOT,但它仍然不适合我。

任何人都可以对此有所了解,因为现在真的很烦我。


这似乎解决了这个问题......

$filename = "/images/profilepictures/1.png";
if (file_exists("..".$filename))
{
    $output .= '<img src="'.$filename.'" alt="profile picture" width="150"/>';
}

我不知道为什么,但我们去了。

2 个答案:

答案 0 :(得分:0)

如果你在php.ini中使用open_basedir并将file_exists用于open_basedir路径之外的文件,则不会在log处警告,即使文件确实存在,file_exists也会返回false。 如果没有为php用户拥有的'other'读取文件权限,file_exists将无法找到您的文件。我以为我的目录名有空格(/ users / andrew / Pictures / iPhoto Library / AlbumData.xml),但实际情况是没有对图片,iPhoto Library或AlbumData.xml的读取权限。一旦我修复了它,file_exists就可以了。 这些对我们来说没问题,因为我们正确地配置了服务器

答案 1 :(得分:0)

如果禁止该文件夹,则file_exists不起作用。尝试将您的文件夹权限更改为777或755?

sudo chmod 777 -R images/