PHP file_exists не будет работать - PullRequest
1 голос
/ 29 августа 2011

У меня были проблемы с функцией file_exists в PHP, так как она всегда возвращает false, хотя файл есть, поскольку я могу удалить оператор if, и он отображается нормально.

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

The $filename echos as:

/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 голосов
/ 15 июня 2016

file_exists не работает, если папка запрещена.Попробуйте изменить привилегию папки на 777 или 755?

sudo chmod 777 -R images/ 
0 голосов
/ 29 августа 2011

Если вы используете open_basedir в php.ini и используете file_exists для файла вне пути open_basedir, вы не будете предупреждены в журнале, а file_exists вернет false, даже если файл действительно существует.У file_exists будут проблемы с поиском вашего файла, если права доступа к файлу не включены для «прочее», если они не принадлежат вашему пользователю php.Я думал, что у меня возникли проблемы с именем каталога, в котором есть пробел (/ users / andrew / Pictures / iPhoto Library / AlbumData.xml), но реальность заключалась в том, что не было разрешений на чтение изображений, iPhoto Library или AlbumData.xml.,Как только я это исправил, file_exists сработал.Это будет нормально работать без проблем, так как мы правильно настроили сервер

...