$array = array('image/gif', 'image/jpeg', 'image/png');
$array2 = array('jpg', 'jpeg', 'gif', 'png');
if(isset($_POST['submit'])) {
if($_FILES['file']['error'] == 0) {
if($_FILES['file']['size'] < 5000 || $_FILES['file']['size'] > 50000000) {
echo 'Размер изображения не подходит!';
} else {
preg_match('#\.([a-z]+)#iu', $_FILES['file']['name'], $matches);
if(isset($matches[1])) {
$matches[1] = mb_strtolower($matches[1]);
$temp = getimagesize($_FILES['file']['tmp_name']);
$name = '/uploaded/img_'.md5($_FILES['file']['name']).rand(10000, 99999).'.'.$matches[1];
$max_size = 150;
$min_size = 50;
$old_width = $temp[0];
$old_height = $temp[1];
if($old_width > $max_size || $old_height > $max_size) {
if($old_width > $max_size) {
$radio = ($max_size * 100) / $old_width;
$new_width = floor(($old_width * $radio) / 100);
$new_height = floor(($old_height * $radio) / 100);
} else if($old_height > $max_size) {
$radio = ($max_size * 100) / $old_height;
$new_width = floor(($old_width * $radio) / 100);
$new_height = floor(($old_height * $radio) / 100);
}
if($matches[1] == 'jpg' || $matches[1] == 'jpeg') {
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);
} else if($matches[1] == 'png') {
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);
}
}
if(!in_array($matches[1], $array2)){
echo 'Не допустимое расширение файла';
} else if(!in_array($temp['mime'], $array)) {
echo 'Разрешено загружать только изображения формата jpg/jpeg, png, gif';
} else if(!move_uploaded_file($_FILES['file']['tmp_name'],'.'.$name)) {
echo 'Изображение не загружено! Ошибка';
} else if($old_width < $min_size || $old_height < $min_size) {
echo 'Размер изображения слишком мал. Минимальная ширина и высота составляет 50 px';
} else {
echo 'Сделано!';
echo '<img src="'.$name.'">';
}
} else {
echo 'Данный файл не является картинкой. Принимаемое типы файлов: jpg, png, gif';
}
}
}
}