Подскажите, что не так в моем скрипте?
Задача такая - закачать изображение в нужную папку с проверками, переименовать его, и сделать превьюшку.
Для превьюшки написал функцию - create_thumb() - она в тексте, только не работает.
if (isset($_FILES['img']['name'])) ) {
$maxwidth = 5000; //Максимальная ширина загружаемого изображения
$maxheight = 5000; //Максимальная высота загружаемого изображения
$allowed_filetypes = array('.jpg','.JPG','.jpeg','.JPEG','.gif','.GIF','.png','.PNG','.bmp','.BMP'); //Поддерживаемые форматы
$maxs = 5120; // Максимальный размер файла
$upload_path = "../../images/content/";
$filename = $_FILES['img']['name']; //Имя файла
$sizefile = getimagesize($_FILES['img']['tmp_name']);//Параметры изображения
$size = filesize($_FILES['img']['tmp_name'])/1024; //Переводим размер изображения в Кбайты
$size = ceil($size); //округляем размер файла до целого числа
$ext = substr($filename,strpos($filename,'.'),strlen($filename)-1);
if(!in_array($ext,$allowed_filetypes)) {
exit ("<p>Вы <strong>выбрали НЕ изображение</strong> для загрузки или данный <strong>формат файлов не поддерживается</strong></p>");
}
else if($size > $maxs or $size == 0) { //Если размер файла больше максимального или равен 0 выдаем ошибку
exit ("<p>Разрешается загружать файлы не более 5 Мб</p>");
}
else if($sizefile[0] > $maxwidth or $sizefile[1] > $maxheight) {// Если разрешение не соответствуют выдаем ошибку
exit ("<p>Файл, который ва пытаетесь загрузить, имеет разрешение <strong>$sizefile[0] x $sizefile[1]</strong>. Разрешается загружать фото не боле чем <strong>$maxwidth х $maxheight</strong> пикселей</p>");
}
else {
move_uploaded_file($_FILES['img']['tmp_name'], $upload_path.$filename);
}
$new_name = uniqid().$ext;
//Переименуем файл на всякий случай что бы не было совпадений
rename($upload_path.$filename, $upload_path.$new_name);
global $ext, $upload_path, $new_name, $sizefile;
function create_thumb($big_img, $mini_img) {
if (!function_exists('imagecreatefrom'.$ext)) :
return false;
endif;
// Исходная картинка:
$thumb_img = call_user_func('imagecreatefrom'.$ext, $big_img);
$maxwidth = 400;
$maxheight = 310;
if (($sizefile[0] > $maxwidth) || ($sizefile[1] > $maxheight)) :
if ($sizefile[0] > $sizefile[1]) :
$ratio = $maxwidth / $sizefile[0];
else :
$ratio = $maxheight / $sizefile[1];
endif;
else :
$ratio = 1;
endif;
$thumbwidth = round($sizefile[0] * $ratio); // Ширина копии
$thumbheight = round($sizefile[1] * $ratio); // Высота копии
// Генерируем уменьшенную копию картинки:
$thumb = imagecreatetruecolor($thumbwidth, $thumbheight);
// Пропорционально меняем размер со сглаживанием:
imagecopyresampled($thumb, $thumb_img, 0, 0, 0, 0, $thumbwidth, $thumbheight, $sizefile[0], $sizefile[1]);
call_user_func_array('image'.$ext, array($thumb, $mini_img));
return true;
}
if (create_thumb($upload_path.$new_name, $upload_path.'thumb.jpg')) { echo 'Получилось'; }
else { echo 'чет не так'; }
}