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