[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка загружаемого файла-изображения
snowman934
Сделал сайт-галерею. Сделал админку. Фотографии на сайт загружаются через форму добавления в админке. Поле выглядит так: <INPUT NAME="thumb" type="file">. Обработчик принимает данный файл и перемещает из временной папки в ту которую мне недо. Все работает. Но мне нодо, чтобы загружались только изображения. Как проверить данный файл, является ли он изображением?

Плохо разбераюсь, но соображения такие. Надо делать через регулярные выражения. Я накидал немного, подскажите как правильнее.
$original_name_thumb = $_FILES['thumb']['name'];
if(!preg_match("/^[a-zA-Z0-9]{1,}.[jpg][png]$/"), $original_name_thumb){
exit('Файл не является изображением');
}






Спустя 6 минут, 1 секунда (18.02.2010 - 17:35) Mizka написал(а):

function validateExtension($file)
{
$checkArray = array("jpg", "png", "bmp");
$extension = pathinfo($file, PATHINFO_EXTENSION);
if(in_array($extension, $checkArray))
return true;
else
return
false;
}

можно и без регулярок, не проверял, но должно работать smile.gif

Спустя 4 часа, 33 минуты, 32 секунды (18.02.2010 - 22:09) vagrand написал(а):
Проверять тип файла по экстеншену не имеет никакого смысла, т.к. егго можено сменить за одну секунду.
Используй $_FILES['thumb']['type'] а еще лучше вот это http://php.net/manual/en/book.mime-magic.php

Спустя 11 часов, 24 минуты, 19 секунд (19.02.2010 - 09:33) sergeiss написал(а):
Цитата (vagrand @ 18.02.2010 - 23:09)
Проверять тип файла по экстеншену не имеет никакого смысла.....

Ну почему же? Если мы четко оговариваем, что можно загружать файлы опреределенного типа, то и расширения у них должны быть правильные. Не соответствует расширение - "к терапевту!".
А уж потом, если расширение верное, можно и более глубоко проверять.

Спустя 1 час, 6 минут, 2 секунды (19.02.2010 - 10:39) snowman934 написал(а):
Сделал так:
if($_FILES["thumb"]["type"] !== 'image/jpeg') exit('Загружаемый файл не является изображением! Попробуйте снова.');


Всем спасибо!

Спустя 1 день, 2 часа, 22 минуты, 17 секунд (20.02.2010 - 13:01) vagrand написал(а):
sergeiss

Это лишняя никому совершенно не нужная проверка.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.