Upload картинок на сервер

BigWindow

Новичок
Upload картинок на сервер

Всем привет!

Продолжая изучение PHP столкнулся с проблемой: «Как безопасно загрузить рисунок на сервер?»

Перед тем как запостить топик, я прочитал кое-какие предшествующие вопросы форумчан. Топиков по данному вопросу тьма тьмущая! :)

Чтобы очередной раз не создавать топик типа: «Нефига не получается загрузить картинку», я набросал свой вариант решения безопасного аплоада картинок.

Собственно листинг ниже. Я же прошу вас оценить данный код, дать советы по улучшению алгоритма, поделиться опытом в реализации подобной задачи.

Собственно код…

PHP:
//массивы с возможными значениями типа и расширений файлов
$img_array = array("image/pjpeg", "image/jpeg", "image/jpg", "image/gif", "image/png", "image/x-png");
$ext_array = array(".jpeg", ".jpg", ".gif", ".png");

//для удобства закинул значения в переменную
$file_type = $HTTP_POST_FILES['file']['type'];
$file_name = $HTTP_POST_FILES['file']['name'];

//в переменную заношу значение строки после точки
$ext = stristr($file_name, '.');

//проверяю соответствие расширения файла значениям массива
if (!in_array($ext, $ext_array))
{
echo('Расширение ложное!');
exit();
}

//проверяю соответствие типа файла значениям массива
if (!in_array($file_type,$img_array))
{
echo('Тип файла ложный!');
exit()
}

//если все условия выполнены, то совершаем копирование в папку
 if(copy($HTTP_POST_FILES['file']['tmp_name'], 'C:/www/html/upload/'.$HTTP_POST_FILES['file']['name']))
{
echo('Все ОК!');
}
else
{
echo('Ошибка при копировании');
}
 
Сверху