Для профиля пользователя на моем сайте им разрешено загружать 1 изображение профиля. Это может быть PNG, JPG, JPEG или GIF. Теперь моя проблема с отображением изображений. В основном, я хотел бы посмотреть, какой тип расширения у него есть, а затем отобразить файл соответствующим образом. Я пытаюсь достичь этого с Файл существует функция в PHP, но, похоже, не работает!
Если я наберу URL (для примера используется .png)
в моей адресной строке будет отображаться изображение этого пользователя. Тогда, если я введу путь к файлу
в адресной строке отобразится изображение этого пользователя. Теперь моя проблема, если я делаю PHP file_check на любом из них всегда говорится, что файл НЕ существует. Вот код, который я использую:
И в приведенном выше примере имя пользователя это просто имя пользователя пользователя. Так что мне интересно, почему этот код не работает? Благодарю вас!!
РЕДАКТИРОВАТЬ
Вот мой общий путь к файлу:
Тем не менее, когда я набираю:
Это не будет работать, изображение не отображается!
Кстати, моя структура каталогов:
Содержание
- Решение
- Другие решения
- 1 ответ 1
Решение
Из комментария php.net
При использовании file_exists, кажется, вы не можете сделать:
так что вы должны сделать:
Тогда все будет работать нормально.
Это, по крайней мере, так в этой системе Windows, на которой запущены php 5.2.5 и apache 2.2.3
Не уверен, что дело до конкатенации или факта константы, я собираюсь убежать и проверить это …
Другие решения
Ну, если вы не знаете точное исключение — не используйте if/else заявления. Вы не можете охватить все возможные комбинации строчных и прописных букв.
Лично я бы порекомендовал конвертировать изображение в ВАШ любимый формат, когда пользователь загружает его, чтобы вы точно знали, что ищете!
Если это невозможно по каким-либо причинам, вы можете использовать glob() найти любой файл, загруженный пользователем.
Тем не менее, для этого потребуется иметь дело с несколькими файлами и … нет … Конвертировать, сохранить, использовать!
file_exists всегда возращает false
Хотя если просто «/> то фото показывается. Т.е. фото физически есть а фот file_exists не отрабатывает. Может быть проблема в том что наименование файлов на русском?
1 ответ 1
У тебя в переменной $path лежит абсолютный путь. По которому файл не доступен.
Я пытаюсь найти файл file_exist в каталоге. Если я не хочу использовать другое изображение. Но поскольку я использую функцию file_exists, он всегда возвращает false.
Но функция всегда возвращает false, даже если файл выходит. Я проверил это, используя
Это отобразило изображение правильно.
Пожалуйста, помогите мне
Вы передаете URL-адрес функции file_exists, которая неверна. Вместо этого передайте локальный путь к папке.
file_exists использует пути файловой системы, а не URL-адреса. Вы используете URL-адреса в браузере для доступа к вашим скриптам PHP через веб-браузер и веб-сервер по сети. Сам PHP script может получить доступ к локальной файловой системе и использует это, он не проходит через сетевой стек для доступа к файлам.
Так что используйте что-то вроде file_exists(‘C:foobardropboxlibadmin’ . ) .
file_exists не поддерживает адреса с использованием HTTP (вы можете видеть это, потому что stat не включен в список оберток, поддерживаемых через HTTP). Как говорится в документации file_exists , удаленные файлы можно проверить с помощью некоторых оболочек, таких как FTP, но это невозможно по HTTP, поэтому file_exists всегда будет возвращать false.
Предполагая, что этот файл находится на локальном компьютере (что предлагается localhost , вам нужно получить к нему доступ с помощью локального пути к файлу. Трудно догадаться, что это может быть для вас, но может показаться /var/www/dropbox. .
file_exists() проверяет, существует ли файл в локальной файловой системе. Вы передаете URL-адрес. Измените его на локальный путь в каталог Dropbox и он должен работать:
Источник: