Как сделать проверку загружаемого файла?

Вот проверка на то, текстовый ли файл я загружаю. Как переделать ее в проверку на изображение?
if($_FILES['uploadfile']['type'] != 'text/plain')
{
 echo 'Вы пытаетесь загрузить не текстовый файл.';
 exit;
}
  • Вопрос задан
  • 2586 просмотров
Пригласить эксперта
Ответы на вопрос 4
akubintsev
@akubintsev
Опытный backend разработчик
Нельзя проверять только по MIME, его подделать можно. Обязательно используйте функцию getimagesize() и желательно делать resize или иную обработку, чтобы избавиться от всяких "инъекций"
Ответ написан
Комментировать
Zoxon
@Zoxon
Веб-разработчик
$imageMime = array (
'image/gif',
'image/jpeg',
'image/pjpeg',
'image/png'
);

if(!in_array($_FILES['uploadfile']['type'], $imageMime)) {

}

ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%...
Ответ написан
Комментировать
pavel_salauyou
@pavel_salauyou
Symfony2 & Angular разработчик
$finfo = finfo_open(FILEINFO_MIME_TYPE);

Получайте mime type файла и затем проверяйте в условии
Ответ написан
Комментировать
@vitaliycto
самый правильный способ для php5+
$fi = new finfo(FILEINFO_MIME); 
$mtype = $fi->file($_FILE['uploadfile']['tmp_name']);
if(!in_array($mtype, array('image/gif','image/jpeg','image/pjpeg','image/png','image/tiff'))){
    echo 'Вы пытаетесь загрузить не картинку.';
    exit;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы