【发布时间】:2011-11-05 14:54:15
【问题描述】:
我在 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"/>';
}
我不知道为什么,但我们走了。
【问题讨论】:
-
由于
$filename包含DOCUMENT_ROOT,如果您只是取出if 语句,如果代码真的有效,我会感到相当惊讶。 -
是的,对不起,我应该提到我从一开始就删除了文档根目录,因为我知道 php 和 html 有不同的根路径
-
在检查文件是否存在之前尝试运行
$filename到realpath()。其他问题可能是存在一些安全模式限制,它们不允许函数查看绝对文件路径。 -
一个显而易见的问题是:您作为示例显示的路径实际上是正确的吗?如果您在
img src属性正常工作时没有包含前导斜杠,那么很容易错过一个或多个子目录远离您认为的位置的影响。
标签: php file exists file-exists