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
Форумы портала PHP.SU :: Версия для печати :: Вопрос по загрузке изображения с последующим созданием миниатюры и сохранением ее в БД
Форумы портала PHP.SU » » Графика в PHP » Вопрос по загрузке изображения с последующим созданием миниатюры и сохранением ее в БД

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

1. shurik_7866 - 28 Декабря, 2015 - 14:08:58 - перейти к сообщению
У меня следующая задача: загрузить изображение, изменить размеры, сохранить в БД.
У меня есть работающий алгоритм (приведен ниже), но в нем есть на мой взгляд лишние действия:

3.Сохранить созданную миниатюру на диск
4.Прочитать с диска миниатюру (перед сохранением в БД)
6.Удалить миниатюру


Упрощенный алгоритм
PHP:
скопировать код в буфер обмена
  1. //1. Создаем изображение на основе существующего
  2. $img = ImageCreateFromJpeg($_FILES["pic"]["tmp_name"]);
  3.  
  4. //2. Создаем уменьшеную копию - далее миниатюру
  5. //размери оригинала
  6. $img_x = imagesx($img); $img_y = imagesy($img);
  7. //размеры новые
  8. $img_new_x = 200; $img_new_y = round($img_y*$img_new_x/$img_x);
  9. //создаем миниатюру
  10. $img_new = ImageCreateTrueColor($img_new_x, $img_new_y);
  11. ImageCopyResampled($img_new, $img, 0, 0, 0, 0, $img_new_x, $img_new_y, $img_x, $img_y);
  12.  
  13. //3.сохранить на диск
  14. $dst = fopen("out/{$_FILES["pic"]["name"]}","w");
  15. imagegif($img_new, $dst);
  16. fclose($dst);
  17.  
  18. //4.Читаем с диска миниатюру
  19. $image_data = mysql_real_escape_string(file_get_contents($_FILES["user_pic"]["tmp_name"]));
  20.  
  21. //5.Сохраняем миниатюру в базу
  22. $query = "insert into images(image_data) values('".$image_data."');";
  23. $result = mysql_query($query);
  24.  
  25. //6.Удаляем с диска миниатюру - за ненадобностью
  26. unlink("out/{$_FILES["pic"]["name"]}");


Вопрос: что нужно подправить в скрипте что бы удалить пункты 3, 4, 6? Нужно для уменьшения файловых операций.

!В интернете все примеры сохранения изображения в базу которые я нашел производятся с использованием функции file_get_contents(), что подразумевает предварительное сохранение миниатюры в файл.

 

Powered by ExBB FM 1.0 RC1