Downloads in Flask

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Ich benutze folgenden Code innerhalb von Pycharm Professional:
@app.route('/download/<filename>')
def return_files(filename):
if 'name' not in session:
flash("Sie müssen sich erst einloggen!")
time.sleep(1)
return redirect(url_for("index"))
filepath = get_filepath(filename)
downname = os.path.join(basedir, filepath, filename)
return send_file(downname, as_attachment=True, attachment_filename=filename)
Dort wird auch die Datei wie gewünscht runtergeladen.

Starte ich aber das Skript unter gunicorn, oder Apache mit WSGI, wird die Datei immer geöffnet und nicht runtergeladen. Das ist aber genau nicht das, was ich will. Habt ihr eine einsteigerfreundliche Idee, wie ich das Verhalten ändern kann?

Danke fürs lesen und Gedanken machen

Dirk

Edit:
Zum Hintergrund. Ich schreibe ein DMS. DIe Dateien sollen unter Link1 angesehen werden können, und unter Link 2 runtergeladen.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie lautet der Dateiname? Enthält der irgendwelche Sonderzeichen?
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Setzt der Webserver möglicherweise den korrekten mime-type passend zum File und der Webserver weiß, dass er den mime-type anzeigen kann?

Was wenn du einen application/octet-stream als mime-type forcierst?
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Main zusammen!

Ich habe das Ganze jetzt so gelöst, das die Downloads gezippt werden. Möchte man die Downloads ungezippt kann man sich da die angezeigten Dateien einfach speichern. Kann ja sein, das dieses Workaround mal irgendjemanden interessiert.
Antworten