Люди рекомендуют использовать getimagesize()
, но документация гласит:
Внимание Эта функция ожидает, что имя файла является допустимым файлом изображения. Если
файл не изображения поставляется, он может быть неправильно определен как изображение
и функция вернется успешно, но массив может содержать
бессмысленные значения.
Не используйте getimagesize()
, чтобы проверить, является ли данный файл допустимым изображением.
Вместо этого используйте специально разработанное решение, такое как расширение Fileinfo .
Соответствующая функция в расширении Fileinfo: finfo_file()
:
string finfo_file ( resource $finfo , string $file_name = NULL
[, int $options = FILEINFO_NONE [, resource $context = NULL ]] )
Возвращает текстовое описание содержимого file_name
аргумент или FALSE , если произошла ошибка.
Примеры возвращаемых значений: text/html
, image/gif
, application/vnd.ms-excel
Тем не менее, комментарии на официальной странице документации предупреждают, что на эту проверку также нельзя полагаться.