Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 29, 2014 12:33:41

info.rss
Зарегистрирован: 2014-01-12
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка картинок

1. Какая логика будет лучше?
На сайте загрузка картинок в форму происходит через формсет, ну очень долго.
На данный момент:
а) в форму добавляется скажем 5 фото
б) жмем сохранить
в) происходит resizing картинок 800х600, для поля img
г) потом еще раз resizing 150х150, для поля thumb
д) все это сохраняется

думаю, лучше и… можно ли сделать так, к примеру:
а) картинка одна загружается в промежуточную папку с помощью Ajax
б) после происходит ресайз картинки 800х600
в) копируется файл, ресайз 150х150
г) процесс загрузки, отображение
д) следующие по формсету тоже самое
е) при нажатии на сохранить берутся картинки из промежуточной папки и копируются или переносятся в папку согласно пути upload=“тут/путь/из/модели/”
ж) промежуточная папка очищается, вприницпе если решили не сохранять она также очищается

2. Если можно направьте по коду тоже.

пс. Просто может кому нужно:
http://www.script-tutorials.com/pure-html5-file-upload/
http://embrangler.com/2010/08/ajax-uploads-images-in-django/
http://www.laurentluce.com/posts/upload-to-django-with-progress-bar-using-ajax-and-jquery/

Отредактировано info.rss (Сен. 29, 2014 12:45:27)

Офлайн

#2 Сен. 29, 2014 12:50:12

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Загрузка картинок

Если ресайз и обработка картинок занимает много времени, то делайте это, например, через celery. А пока картинки не обработались, устанавливайте на их место какие-то заглушки.

Офлайн

#3 Сен. 30, 2014 08:20:28

info.rss
Зарегистрирован: 2014-01-12
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка картинок

Посмотрел в сторону django-celery, это пока сложно для меня. Информации почти нет, только о том как установить. А что дальше…
Думаете стоит все это доустанавливать ради такой простой задачи?
Мне кажется есть более простой путь, одним коротким скриптом, разве нет?

Офлайн

#4 Сен. 30, 2014 09:27:53

Oik741
Зарегистрирован: 2013-01-06
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка картинок

Ещё как вариант использовать sorl-thumbnail
Загружаешь оригинал, сохраняешь, в шаблоне с помощью тега thumbnail ресайзишь картинки

В итоге картинки будут ресайзиться в момент когда их запросят и только 1 раз.

Ну либо sorl-thumbnail-async(celery уже прикручен)

Офлайн

#5 Сен. 30, 2014 13:45:32

info.rss
Зарегистрирован: 2014-01-12
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка картинок

Oik741
В итоге картинки будут ресайзиться в момент когда их запросят и только 1 раз.

Уточните, пожалуйста.
1. При обращении создается thumnail в папке cache.
2.а. Дальше пользователь обращается к уже созданной миниатюре?
Или…
2.б. При каждом первом обращении пользователями, все кешируется на уровне браузера.

В каталоге товаров выводятся блоки с картинками около 20-30.
К каждому товару приклеивается 1-я картинка из инлайновой модели. (1-я, потому что их несколько принадлежит одному товару).
Вопрос. Долго грузится страница. Может это не верный метод?

Офлайн

#6 Сен. 30, 2014 16:12:43

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

Загрузка картинок

Тоже использую принцип solr-thumbnail.
при открытии картинки нужного размера(через template tag)- выясняется какое имя она должна иметь. проверяется, если нет- создается из оригинала, если есть- отдается готовая.
В случае если превьюшка имеет дату старее чем оригинал- превьюшка пересоздается.
А для самой загрузки картинок использую http://fineuploader.com/
Отличная кроссбраузерная штука.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version