Django: Bilder downloaden

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hallo,

ich möchte auf meiner Seite die Möglichkeit schaffen, dass Leute per Buttondruck mehrere Bilder, welche alle in einem Ordner liegen, herunterladen können.

Wie macht man das am einfachsten? Bzw. wie sähe die views.py dafür aus?

Welches Module nutzt man für den download?

Zipped man das oder iteriert man durch alle Bilder im Ordner durch und lädt das einzeln herunter?

Danke
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum wollen die Leute das machen? Was sind das für Bilder? Was erwartet der Anwender?

Möchte Nutzer eine Vorschauseite, wo er die Bilder in klein sieht, dort welche selektieren kann, die er dann auf Wunsch einzeln oder als Zip-Datei herunterladen kann?
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Bilder von einer privaten Feier. Loginsystem habe ich auch schon. Je nach Gast sollen andere Bilder ausgespielt und dynamisch Texte geändert werden. Das habe ich aber alles schon.

Eine Vorschauansicht auf der Seite selbst habe ich auch schon gebaut. Es geht jetzt um den gebündelten Download der Bilder.

Ich gehe davon aus, dass einige Leute die dann lokal speichern wollen und demnach die Möglichkeit bekommen sollten alle herunterladen zu können.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

AFAIK kann man keine mehrfachen Downloads machen. Wir zippen darum in dem Fall.
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich habe was ähnliches mal für PDFs gebaut. Vom Prinzip habe ich das auch so umgesetzt, wie von dir angedacht. Über die Dateien iterieren, in eine ZIP-Datei packen.

Mein Code dafür in der view.py sieht so aus:

Code: Alles auswählen

...
zip_buf = BytesIO()
with zipfile.ZipFile(zip_buf, 'w', zipfile.ZIP_DEFLATED) as zipper
    #add content to ZIP file
response = HttpResponse(content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename="{}"'.format('{}_{}_zipped.zip'.format(category, lang))
pdf = zip_buf.getvalue()
zip_buf.close()
response.write(pdf)
return response
Gruß, noisefloor
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Danke noisefloor. Dein Code lässt sich super anpassen und funktioniert.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten