Проверить, существует ли файл в php

if (!(file_exists(http://mysite.com/images/thumbnail_1286954822.jpg))) {   
$filefound = '0';                         
}

почему это не будет работать?

Ответ 1

if (!file_exists('http://mysite.com/images/thumbnail_1286954822.jpg')) {   
$filefound = '0';                         
}

Ответ 2

  • Функция ожидает строку.

  • file_exists() не работает с HTTP-адресами.

Ответ 3

file_exists проверяет, существует ли файл по указанному пути или нет.

Синтаксис:

file_exists ( string $filename )

Возвращает TRUE, если файл или каталог, указанные в имени файла, существуют; FALSE в противном случае.

$filename = BASE_DIR."images/a/test.jpg";
if (file_exists($filename)){
    echo "File exist.";
}else{
    echo "File does not exist.";
}

Другой альтернативный метод, который вы можете использовать getimagesize(), будет возвращать 0 (ноль), если файл/каталог недоступен по указанному пути.

if (@getimagesize($filename)) {...}

Ответ 4

Основываясь на вашем комментарии к Haim, это файл на вашем собственном сервере? Если это так, вам нужно использовать путь к файловой системе, а не URL (например, file_exists( '/path/to/images/thumbnail.jpg' )).

Ответ 5

для меня также функция file_exists() не работает должным образом. Итак, я получил это альтернативное решение. Надеюсь, что это поможет кому-то

$path = 'http://localhost/admin/public/upload/video_thumbnail/thumbnail_1564385519_0.png';

    if (@GetImageSize($path)) {
        echo 'File exits';
    } else {
        echo "File does not exits";
    }

Ответ 6

Вы также можете использовать функцию PHP get_headers().

Пример:

function check_file_exists_here($url){
   $result=get_headers($url);
   return stripos($result[0],"200 OK")?true:false; //check if $result[0] has 200 OK
}

if(check_file_exists_here("http://www.mywebsite.com/file.pdf"))
   echo "This file exists";
else
   echo "This file does not exist";