PHP file_exists не будет работать

У меня были проблемы с file_exists Функция в PHP, что он всегда возвращает ложь, хотя файл там, как я могу удалить оператор 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 ответа

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

sudo chmod 777 -R images/ 

Если вы используете 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 сработал. Они будут работать нормально для нас без проблем, так как мы правильно настроили сервер

Другие вопросы по тегам