Понимание того, является ли файл изображением или видео из его содержимого - PullRequest
0 голосов
/ 26 июня 2018

Я не могу найти способ понять, является ли файл действительно видео или изображением. Например: у меня есть изображение .jpg, переименованное в .mp4, если я открываю его через компьютер или браузер, я ничего не вижу, потому что на самом деле это не видео. То, что я ищу, - это способ понять, является ли видео / изображение за пределами необходимого расширения действительно видео или изображением, в зависимости от запроса. Теоретически я хотел бы подобный результат:

$ImageOrVideo = pathinfo($_FILES["file"]["tmp_name"],PATHINFO_EXTENSION);
switch($ImageOrVideo){
    case 'jpg': //check if a real image
    case 'mp4': // check if a real video
    default: exit('stop');
}

Я думал о некоторых решениях, например, в прошлом, которые я использовал для изображений getimagesize (), но теперь документация php гласит:

Внимание! Эта функция ожидает, что имя файла является допустимым файлом изображения. Если файл не изображения поставляется, он может быть неправильно определен как изображение и функция вернется успешно, но массив может содержать бессмысленные значения.

Не используйте getimagesize () для проверки того, что данный файл является допустимым изображением. Вместо этого используйте специально разработанное решение, такое как расширение Fileinfo.

1 Ответ

0 голосов
/ 26 июня 2018
$ImageOrVideo = $_FILES["file"]["tmp_name"];
switch(mime_content_type($ImageOrVideo)){ 
        case 'image/jpeg':
             // ........
             break;
        case 'video/mp4':
             // ........
             break;
        default:
             exit('stop');
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...