[bottle] file-download

Django, Flask, Bottle, WSGI, CGI…
Antworten
Oscar426
User
Beiträge: 14
Registriert: Mittwoch 24. Februar 2010, 20:46

Hallo,

ich möchte mit bottle eine zur Laufzeit generierte Text-Datei zum Download anbieten. Die send_file-Methode stellt den Text jedoch auf der Webseite dar anstatt einen Download anzustoßen.
Hat jemand ne Idee wie man das macht?

vielen Dank!
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Der Browser öffnet Dateien selbst, wenn er den mimetyp kennt. Einen Download kann man mit dem 'Content-Disposition' Header erzwingen.

Mit bottle 0.6.4:

Code: Alles auswählen

response.header['Content-Disposition'] = 'attachment; filename="target_filename.txt"'
send_file(...)
Mit neueren Versionen:

Code: Alles auswählen

send_file(..., download='target_filename.txt')
Bottle: Micro Web Framework + Development Blog
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

z.B. per htaccess:

Code: Alles auswählen

AddType application/octet-stream .txt
Oscar426
User
Beiträge: 14
Registriert: Mittwoch 24. Februar 2010, 20:46

funzt! :)

danke für die schnelle Hilfe!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

.robert hat geschrieben:z.B. per htaccess:

Code: Alles auswählen

AddType application/octet-stream .txt
Das wird doch bei Verwendung von bottle überhaupt nicht ausgewertet.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Öhm, auch nicht wenn man statische Dateien über einen extra Server oder eine extra (sub)Domain ausliefert?
Das sollte doch auch per bottle gehen, oder?

Wenn man die statischen dateien auch über bottle ausliefert, geht das natürlich nicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

.robert hat geschrieben:Öhm, auch nicht wenn man statische Dateien über einen extra Server oder eine extra (sub)Domain ausliefert?
Das sollte doch auch per bottle gehen, oder?
Ja, dann hat bottle damit nichts zu tun, also geht das auch "per bottle".
.robert hat geschrieben:Wenn man die statischen dateien auch über bottle ausliefert, geht das natürlich nicht.
Eben, das war ja gefragt. Aber das ist jetzt Metadiskussion.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten