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

 PHP.SU

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


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

> Без описания
shurik_7866
Отправлено: 28 Декабря, 2015 - 14:08:58
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Май 2015  


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




У меня следующая задача: загрузить изображение, изменить размеры, сохранить в БД.
У меня есть работающий алгоритм (приведен ниже), но в нем есть на мой взгляд лишние действия:

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(), что подразумевает предварительное сохранение миниатюры в файл.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB