Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Warning: imagecreatetruecolor() Warning: imagecopyresampled() Warning: imagejpeg() помогите решить

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
livote
Отправлено: 03 Ноября, 2012 - 08:48:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+][+]


нашёл в инете скрипт загрузки картинки с созданием миниатюр

PHP:
скопировать код в буфер обмена
  1. $f_err     = 0; //вспомогательная переменная
  2.     $types     = array(
  3.         '.jpg',
  4.         '.JPG',
  5.         '.jpeg',
  6.         '.gif',
  7.         '.bmp',
  8.         '.png'
  9.     ); //поддерживаемые форматы         загружаемых файлов
  10.     $max_size  = 102400; //максимальный размер загружаемого файла (1000 Кило)
  11.     $fname     = md5($fname) . $ext;
  12.     $path      = 'img/img/' . $username . "_" . $fname; //директория для загрузки
  13.     $path_mini = 'img/'; //директория для загрузки миниатюры
  14.     $fname     = $_FILES['foto1']['name'];
  15.     $ext       = substr($fname, strpos($fname, '.'), strlen($fname) - 1); //определяем тип загружаемого   файла
  16.  
  17.     //проверка на соответствие формата
  18.     if (!in_array($ext, $types)) {
  19.         $f_err++;
  20.         $mess = '<p style="color:red;">Загружаемый файл не является картинкой</p>';
  21.     }
  22.  
  23.     //проверка размера файла
  24.     if (filesize($_FILES['foto1']['tmp_name']) > $max_size) {
  25.         $f_err++;
  26.         $mess = '<p style="color:red;">Размер загружаемой картинки превышает 1 Mb</p>';
  27.     }
  28.  
  29.     //если файл успешно прошел проверку
  30.     //перемещаем его в заданную директорию из временной
  31.     if ($f_err == 0) {
  32.         move_uploaded_file($_FILES['foto1']['tmp_name'], $path . $fname);
  33.  
  34.         //путь к загруженному файлу
  35.         $source_src = $path . $fname;
  36.  
  37.         //создаем путь и имя миниатюры
  38.         $new_name     = md5($fname) . $ext;
  39.         $resource_src = $path_mini . $username . "_" . $new_name;
  40.  
  41.         //получаем параметры загруженного файла
  42.         $params = getimagesize($source_src); //строка 101
  43.  
  44.         switch ($params[2]) {
  45.             case 1:
  46.                 $source = imagecreatefromgif($source_src);
  47.                 break;
  48.             case 2:
  49.                 $source = imagecreatefromjpeg($source_src);
  50.                 break;
  51.         }
  52.  
  53.         //если высота больше ширины
  54.         //вычисляем новую ширину
  55.         if ($params[1] > $params[0]) {
  56.             $newheight = 250;
  57.             $newwidth  = floor($newheight * $params[0] / $params[1]);
  58.         }
  59.         //если ширина больше высоты
  60.         //вычисляем новую высоту
  61.         if ($params[1] < $params[0]) {
  62.             $newwidth  = 250;
  63.             $newheight = floor($newwidth * $params[1] / $params[0]);
  64.         }
  65.  
  66.         //создаем миниатюру загруженного изображения
  67.         $resource = imagecreatetruecolor($newwidth, $newheight); //строка 126
  68.         imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]); // строка 127
  69.         imagejpeg($resource, $resource_src, 80); //80 качество изображения ну иследовательно 128
  70.  
  71.         //выводим сообщение
  72.         $mess = '<center><br><p style="color:green;">Изображение загружено !</p></center>';
  73.         $ok   = 1;
  74.     }
  75.  


не могу разобраться со следующими ошибками:


Warning: getimagesize(img/img/_d41d8cd98f00b204e9800998ecf8427ecodepages.png) [function.getimagesize]: failed to open stream: No such file or directory in W:\domains\but\newop.php on line 101

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in W:\domains\but\newop.php on line 126

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in W:\domains\but\newop.php on line 127

Warning: imagejpeg(): supplied argument is not a valid Image resource in W:\domains\but\newop.php on line 128


Номера строк с ошибками подписаны в коде


-----
Не следует бояться зайти за пределы того, что считается возможным – ибо именно там находится успех.
 
 Top
KingStar
Отправлено: 03 Ноября, 2012 - 09:49:10
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




No such file or directory - перевести??? - Нет такого файла или каталога Хм
Invalid image dimensions - перевести??? - Неверный размер изображения Хм

дальше все вытекающие ошибки


-----
То что программа работает, не означает что она написана правильно!
 
 Top
livote
Отправлено: 03 Ноября, 2012 - 10:10:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)

[+][+]


KingStar пишет:
No such file or directory - перевести??? - Нет такого файла или каталога Хм
Invalid image dimensions - перевести??? - Неверный размер изображения Хм

дальше все вытекающие ошибки


ок.поковырялся - настроил более менее (хотя странно папки на серваке были)ну да ладно.только вот осталась одна ошибка:

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in W:\domains\but\newop.php on line 127


-----
Не следует бояться зайти за пределы того, что считается возможным – ибо именно там находится успех.
 
 Top
Panoptik
Отправлено: 03 Ноября, 2012 - 10:17:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




livote пишет:
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in W:\domains\but\newop.php on line 127
опять же переводим: аргумент функции не является валидным ресурсом изображения.
функция принимает 2 первых аргумента-ресурса
PHP:
скопировать код в буфер обмена
  1.  imagecopyresampled($resource, $source, 0, 0, 0, 0, $newwidth, $newheight, $params[0], $params[1]); // строка 127

если с первым у вас всё хорошо, то в очевидно вторая переменная $source не инициализированна, а именно в
PHP:
скопировать код в буфер обмена
  1.  
  2. switch ($params[2]) {
  3.             case 1:
  4.                 $source = imagecreatefromgif($source_src);
  5.                 break;
  6.             case 2:
  7.                 $source = imagecreatefromjpeg($source_src);
  8.                 break;
  9.         }
  10.  

у вас нет 3 варианта, но вы его допускаете. поставьте default значение, чтобы оно генерировало изображение, или останавливало скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. switch ($params[2]) {
  3.             case 1:
  4.                 $source = imagecreatefromgif($source_src);
  5.                 break;
  6.             case 2:
  7.                 $source = imagecreatefromjpeg($source_src);
  8.                 break;
  9.             default: throw new Exception(500,'$params[2] = '.$params[2].' и не удовлетворяет условие');
  10.         }

(Отредактировано автором: 03 Ноября, 2012 - 10:20:09)



-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB