Форум сайта python.su
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)
Офлайн
Если ресайз и обработка картинок занимает много времени, то делайте это, например, через celery. А пока картинки не обработались, устанавливайте на их место какие-то заглушки.
Офлайн
Посмотрел в сторону django-celery, это пока сложно для меня. Информации почти нет, только о том как установить. А что дальше…
Думаете стоит все это доустанавливать ради такой простой задачи?
Мне кажется есть более простой путь, одним коротким скриптом, разве нет?
Офлайн
Ещё как вариант использовать sorl-thumbnail
Загружаешь оригинал, сохраняешь, в шаблоне с помощью тега thumbnail ресайзишь картинки
В итоге картинки будут ресайзиться в момент когда их запросят и только 1 раз.
Ну либо sorl-thumbnail-async(celery уже прикручен)
Офлайн
Oik741
В итоге картинки будут ресайзиться в момент когда их запросят и только 1 раз.
Офлайн
Тоже использую принцип solr-thumbnail.
при открытии картинки нужного размера(через template tag)- выясняется какое имя она должна иметь. проверяется, если нет- создается из оригинала, если есть- отдается готовая.
В случае если превьюшка имеет дату старее чем оригинал- превьюшка пересоздается.
А для самой загрузки картинок использую http://fineuploader.com/
Отличная кроссбраузерная штука.
Офлайн