file exists php не работает

file exists php не работает

Для профиля пользователя на моем сайте им разрешено загружать 1 изображение профиля. Это может быть PNG, JPG, JPEG или GIF. Теперь моя проблема с отображением изображений. В основном, я хотел бы посмотреть, какой тип расширения у него есть, а затем отобразить файл соответствующим образом. Я пытаюсь достичь этого с Файл существует функция в PHP, но, похоже, не работает! ��

в моей адресной строке будет отображаться изображение этого пользователя. Тогда, если я введу путь к файлу

в адресной строке отобразится изображение этого пользователя. Теперь моя проблема, если я делаю PHP file_check на любом из них всегда говорится, что файл НЕ существует. Вот код, который я использую:

И в приведенном выше примере имя пользователя это просто имя пользователя пользователя. Так что мне интересно, почему этот код не работает? Благодарю вас!! ��

РЕДАКТИРОВАТЬ
Вот мой общий путь к файлу:

Тем не менее, когда я набираю:

Это не будет работать, изображение не отображается! ��
Кстати, моя структура каталогов:

Решение

Из комментария php.net

При использовании file_exists, кажется, вы не можете сделать:

так что вы должны сделать:

Тогда все будет работать нормально.

Это, по крайней мере, так в этой системе Windows, на которой запущены php 5.2.5 и apache 2.2.3

Не уверен, что дело до конкатенации или факта константы, я собираюсь убежать и проверить это …

Другие решения

Ну, если вы не знаете точное исключение — не используйте if/else заявления. Вы не можете охватить все возможные комбинации строчных и прописных букв.

Лично я бы порекомендовал конвертировать изображение в ВАШ любимый формат, когда пользователь загружает его, чтобы вы точно знали, что ищете!

Если это невозможно по каким-либо причинам, вы можете использовать glob() найти любой файл, загруженный пользователем.

Тем не менее, для этого потребуется иметь дело с несколькими файлами и … нет … Конвертировать, сохранить, использовать!

file_exists всегда возращает false

Хотя если просто «/> то фото показывается. Т.е. фото физически есть а фот file_exists не отрабатывает. Может быть проблема в том что наименование файлов на русском?

1 ответ 1

Я пытаюсь найти файл file_exist в каталоге. Если я не хочу использовать другое изображение. Но поскольку я использую функцию file_exists, он всегда возвращает false.

Но функция всегда возвращает false, даже если файл выходит. Я проверил это, используя

Это отобразило изображение правильно.

Пожалуйста, помогите мне

Вы передаете URL-адрес функции file_exists, которая неверна. Вместо этого передайте локальный путь к папке.

file_exists использует пути файловой системы, а не URL-адреса. Вы используете URL-адреса в браузере для доступа к вашим скриптам PHP через веб-браузер и веб-сервер по сети. Сам PHP script может получить доступ к локальной файловой системе и использует это, он не проходит через сетевой стек для доступа к файлам.

file_exists() проверяет, существует ли файл в локальной файловой системе. Вы передаете URL-адрес. Измените его на локальный путь в каталог Dropbox и он должен работать:

Источник

file_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

file_exists — Проверяет существование указанного файла или каталога

Описание

Проверяет наличие указанного файла или каталога.

Список параметров

Путь к файлу или каталогу.

Возвращаемые значения

Данная функция возвращает false для символических ссылок, указывающих на несуществующие файлы.

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

Примеры

Пример #1 Проверка существования файла

Примечания

Смотрите также

User Contributed Notes 30 notes

Note: The results of this function are cached. See clearstatcache() for more details.

file_exists() does NOT search the php include_path for your file, so don’t use it before trying to include or require.

Yes, include does return false when the file can’t be found, but it does also generate a warning. That’s why you need the @. Don’t try to get around the warning issue by using file_exists(). That will leave you scratching your head until you figure out or stumble across the fact that file_exists() DOESN’T SEARCH THE PHP INCLUDE_PATH.

In response to seejohnrun’s version to check if a URL exists. Even if the file doesn’t exist you’re still going to get 404 headers. You can still use get_headers if you don’t have the option of using CURL..

$file = ‘http://www.domain.com/somefile.jpg’;
$file_headers = @get_headers($file);
if($file_headers[0] == ‘HTTP/1.1 404 Not Found’) <
$exists = false;
>
else <
$exists = true;
>

If you are trying to access a Windows Network Share you have to configure your WebServer with enough permissions for example:

You will get an error telling you that the pathname doesnt exist this will be because Apache or IIS run as LocalSystem so you will have to enter to Services and configure Apache on «Open a session as» Create a new user that has enough permissions and also be sure that target share has the proper permissions.

Hope this save some hours of research to anyone.

With PHP 7.0 on Ubuntu 17.04 and with the option allow_url_fopen=On, file_exists() returns always false when trying to check a remote file via HTTP.

returns always «missing», even for an existing URL.

I found that in the same situation the file() function can read the remote file, so I changed my routine in

This is clearly a bit slower, especially if the remote file is big, but it solves this little problem.

For some reason, none of the url_exists() functions posted here worked for me, so here is my own tweaked version of it.

I wrote this little handy function to check if an image exists in a directory, and if so, return a filename which doesnt exists e.g. if you try ‘flower.jpg’ and it exists, then it tries ‘flower[1].jpg’ and if that one exists it tries ‘flower[2].jpg’ and so on. It works fine at my place. Ofcourse you can use it also for other filetypes than images.

Note on openspecies entry (excellent btw, thanks!).

Replace the extensions (net|com|. ) in the regexp expression as appropriate.

If the file being tested by file_exists() is a file on a symbolically-linked directory structure, the results depend on the permissions of the directory tree node underneath the linked tree. PHP under a web server (i.e. apache) will respect permissions of the file system underneath the symbolic link, contrasting with PHP as a shell script which respects permissions of the directories that are linked (i.e. on top, and visible).

This results in files that appear to NOT exist on a symbolic link, even though they are very much in existance and indeed are readable by the web server.

this code here is in case you want to check if a file exists in another server:

Here is a simpler version of url_exists:

When using file_exists, seems you cannot do:

This is at least the case on this Windows system running php 5.2.5 and apache 2.2.3

Not sure if it is down to the concatenation or the fact theres a constant in there, i’m about to run away and test just that.

I was having problems with the file_exists when using urls, so I made this function:

I made a bit of code that sees whether a file served via RTSP is there or not:

NB: This function expects the full server-related pathname to work.

For example, if you run a PHP routine from within, for example, the root folder of your website and and ask:

You will get FALSE even if that file does exist off root.

Older php (v4.x) do not work with get_headers() function. So I made this one and working.

file_exists() will return FALSE for broken links

You could use document root to be on the safer side because the function does not take relative paths:

I spent the last two hours wondering what was wrong with my if statement: file_exists($file) was returning false, however I could call include($file) with no problem.

// includes lies in /home/user/public_html/includes/

//doesn’t work, file_exists returns false
if ( file_exists ( ‘includes/config.php’ ) )
<
include( ‘includes/config.php’ );
>

The code can be used to t a filename that can be used to create a new filename.

//character that can be used
$possible = «0123456789bcdfghjkmnpqrstvwxyz» ;

My way of making sure files exist before including them is as follows (example: including a class file in an autoloader):

file_exists() is vulnerable to race conditions and clearstatcache() is not adequate to avoid it.

The following function is a good solution:

IMPORTANT: The file will remain on the disk if it was successfully created and you must clean up after you, f.ex. remove it or overwrite it. This step is purposely omitted from the function as to let scripts do calculations all the while being sure the file won’t be «seized» by another process.

NOTE: This method fails if the above function is not used for checking in all other scripts/processes as it doesn’t actually lock the file.
FIX: You could flock() the file to prevent that (although all other scripts similarly must check it with flock() then, see https://www.php.net/manual/en/function.flock.php). Be sure to unlock and fclose() the file AFTER you’re done with it, and not within the above function:

If checking for a file newly created by an external program in Windows then file_exists() does not recognize it immediately. Iy seems that a short timeout may be required.

500000) break; // wait a moment
>

if (file_exists($file)) // now should be reliable
?>

Источник

file_exists ($ url) не работает в случае вызова ajax

У меня есть файл с именем «test.php» внутри файла у меня есть следующий код

Мой файл images.php, который выполняется при вызове ajax, содержит следующий код.

Решение

file_exists не может быть использован с http:// URL-адрес. От документация :

Начиная с PHP 5.0.0, эта функция также может использоваться с некоторыми упаковщиками URL. Ссылаться на Поддерживаемые протоколы и оболочки определить, какие оболочки поддерживают stat() Семья функциональности.

Если вы перейдете по этой ссылке, а затем следуйте http:// ссылка, это говорит:

Вместо этого вы можете просто попытаться открыть URL. Если это успешно, то URL существует.

Другие решения

Сначала нужно подтвердить, что вы передали имя

тогда вы можете использовать CURL, чтобы проверить, существует ли URL

Вы также можете попробовать из этого ТАК

file_exists () проверяет файлы. URL не является файлом. Если файл изображения, который вы ищете, находится на вашем локальном сервере, то вы можете просто использовать полный путь к нему:

Если файл находится на удаленном сервере, и вы хотите проверить, что URL, ссылающийся на него, действителен, вы можете использовать CURL для выполнения HEAD-запроса к нему:

Я бы не рекомендовал делать что-то вроде file_get_contents($url) если вам действительно не нужно содержимое изображения, потому что это на самом деле загрузит полное изображение, а затем просто выбросит его, тратя впустую пропускную способность как для вас, так и для удаленного сервера.

Источник

file exists php не работает

Для профиля пользователя на моем сайте им разрешено загружать 1 изображение профиля. Это может быть PNG, JPG, JPEG или GIF. Теперь моя проблема с отображением изображений. В основном, я хотел бы посмотреть, какой тип расширения у него есть, а затем отобразить файл соответствующим образом. Я пытаюсь достичь этого с Файл существует функция в PHP, но, похоже, не работает! ��

в моей адресной строке будет отображаться изображение этого пользователя. Тогда, если я введу путь к файлу

в адресной строке отобразится изображение этого пользователя. Теперь моя проблема, если я делаю PHP file_check на любом из них всегда говорится, что файл НЕ существует. Вот код, который я использую:

И в приведенном выше примере имя пользователя это просто имя пользователя пользователя. Так что мне интересно, почему этот код не работает? Благодарю вас!! ��

РЕДАКТИРОВАТЬ
Вот мой общий путь к файлу:

Тем не менее, когда я набираю:

Это не будет работать, изображение не отображается! ��
Кстати, моя структура каталогов:

Решение

Из комментария php.net

При использовании file_exists, кажется, вы не можете сделать:

так что вы должны сделать:

Тогда все будет работать нормально.

Это, по крайней мере, так в этой системе Windows, на которой запущены php 5.2.5 и apache 2.2.3

Не уверен, что дело до конкатенации или факта константы, я собираюсь убежать и проверить это …

Другие решения

Ну, если вы не знаете точное исключение — не используйте if/else заявления. Вы не можете охватить все возможные комбинации строчных и прописных букв.

Лично я бы порекомендовал конвертировать изображение в ВАШ любимый формат, когда пользователь загружает его, чтобы вы точно знали, что ищете!

Если это невозможно по каким-либо причинам, вы можете использовать glob() найти любой файл, загруженный пользователем.

Тем не менее, для этого потребуется иметь дело с несколькими файлами и … нет … Конвертировать, сохранить, использовать!

file_exists всегда возращает false

Хотя если просто «/> то фото показывается. Т.е. фото физически есть а фот file_exists не отрабатывает. Может быть проблема в том что наименование файлов на русском?

1 ответ 1

Я пытаюсь найти файл file_exist в каталоге. Если я не хочу использовать другое изображение. Но поскольку я использую функцию file_exists, он всегда возвращает false.

Но функция всегда возвращает false, даже если файл выходит. Я проверил это, используя

Это отобразило изображение правильно.

Пожалуйста, помогите мне

Вы передаете URL-адрес функции file_exists, которая неверна. Вместо этого передайте локальный путь к папке.

file_exists использует пути файловой системы, а не URL-адреса. Вы используете URL-адреса в браузере для доступа к вашим скриптам PHP через веб-браузер и веб-сервер по сети. Сам PHP script может получить доступ к локальной файловой системе и использует это, он не проходит через сетевой стек для доступа к файлам.

file_exists() проверяет, существует ли файл в локальной файловой системе. Вы передаете URL-адрес. Измените его на локальный путь в каталог Dropbox и он должен работать:

Источник

HTML — file_exists в PHP не работает должным образом

Для профиля пользователя на моем сайте им разрешено загружать 1 изображение профиля. Это может быть PNG, JPG, JPEG или GIF. Теперь моя проблема с отображением изображений. В основном, я хотел бы посмотреть, какой тип расширения у него есть, а затем отобразить файл соответствующим образом. Я пытаюсь достичь этого с Файл существует функция в PHP, но, похоже, не работает! 🙁

в моей адресной строке будет отображаться изображение этого пользователя. Тогда, если я введу путь к файлу

в адресной строке отобразится изображение этого пользователя. Теперь моя проблема, если я делаю PHP file_check на любом из них всегда говорится, что файл НЕ существует. Вот код, который я использую:

И в приведенном выше примере имя пользователя это просто имя пользователя пользователя. Так что мне интересно, почему этот код не работает? Благодарю вас!! 🙂

РЕДАКТИРОВАТЬ
Вот мой общий путь к файлу:

Тем не менее, когда я набираю:

Это не будет работать, изображение не отображается! 🙁
Кстати, моя структура каталогов:

Решение

Из комментария php.net

При использовании file_exists, кажется, вы не можете сделать:

так что вы должны сделать:

Тогда все будет работать нормально.

Это, по крайней мере, так в этой системе Windows, на которой запущены php 5.2.5 и apache 2.2.3

Не уверен, что дело до конкатенации или факта константы, я собираюсь убежать и проверить это …

Другие решения

Ну, если вы не знаете точное исключение — не используйте if/else заявления. Вы не можете охватить все возможные комбинации строчных и прописных букв.

Лично я бы порекомендовал конвертировать изображение в ВАШ любимый формат, когда пользователь загружает его, чтобы вы точно знали, что ищете!

Если это невозможно по каким-либо причинам, вы можете использовать glob() найти любой файл, загруженный пользователем.

Тем не менее, для этого потребуется иметь дело с несколькими файлами и … нет … Конвертировать, сохранить, использовать!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *