[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не генерится превьюшка
donvasin
Всем привет!
Подскажите, что не так в моем скрипте?
Задача такая - закачать изображение в нужную папку с проверками, переименовать его, и сделать превьюшку.
Для превьюшки написал функцию - 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 'чет не так'; }
}
Быстрый ответ:

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