[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php upload изображения и его миниатюры
A_M
Совершенно не работает функция, которая должна загружать изображение и создавать его миниатюру! Загрузка изображения взята с http://irbis-team.com/15/13/2 и работает исправно, ошибка в части создания мини.
Помогите разобраться, Сам уже не способен...

<?php

function
uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.', $img_name = '.')
{

$error = null;
$info = null;
$max_file_size *= 5102;

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination = $upload_dir . '/' . $img_name . '.' . $file_extension;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
/////////////////// М И Н И А Т Ю Р А /////////////////////////////////

list($width, $height) = getimagesize($destination); // Возвращает ширину и высоту.
[u]ОШИБКА В СТРОКЕ ВЫШЕ ДУМАЮ ЕСТЬ, ну просто на этом место стопорит точно[/u]
$newheight = $height * $size;
$newwidth = $newheight / $width;

$thumb = imagecreatetruecolor($size, $newwidth);

switch ($file_extension) {
case 'jpg':
$source = @imagecreatefromjpeg($destination);
break;

case 'jpeg':
$source = @imagecreatefromjpeg($destination);
break;

case 'gif':
$source = @imagecreatefromgif($destination);
break;

case 'png':
$source = @imagecreatefrompng($destination);
break;

case 'bmp':
$source = @imagecreatefromwbmp($destination);
};

// Функция наложения, копирования изображения
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $newwidth, $width, $height);

// Создаем изображение
switch ($file_extension) {
case 'jpg':
imagejpeg($thumb, $upload_dir . '/min/' . $img_name . '.' . $file_extension, $quality);
break;

case 'jpeg':
imagejpeg($thumb, $upload_dir . '/min/' . $img_name . '.' . $file_extension, $quality);
break;

case 'gif':
imagegif($thumb, $upload_dir . '/min/' . $img_name . '.' . $file_extension);
break;

case 'png':
imagepng($thumb, $upload_dir . '/min/' . $img_name . '.' . $file_extension, $quality);
break;

case 'bmp':
imagewbmp($thumb, $upload_dir . '/min/' . $img_name . '.' . $file_extension);
break;
};

// Удаляем устаревшие бяки
@imagedestroy($thumb);
@imagedestroy($source);

/////////////////////////////////////////////////////////////////////
$info = 'Файл успешно загружен ' . $img_name . '.' . $file_extension;
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

$error_code = $_FILES['userfile']['error'];

if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}

return array('info' => $info, 'error' => $error);
}

/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif', 'bmp');
$upload_dir = '/skins/images/downloaded';
$img_name = time() . rand(0, 1000);
$size = 250;
$quality = 85;
Быстрый ответ:

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