Seite 1 von 1

Downloads in Flask

Verfasst: Donnerstag 24. März 2022, 11:57
von Dirki
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.

Re: Downloads in Flask

Verfasst: Donnerstag 24. März 2022, 15:21
von Sirius3
Wie lautet der Dateiname? Enthält der irgendwelche Sonderzeichen?

Re: Downloads in Flask

Verfasst: Donnerstag 24. März 2022, 19:31
von sparrow
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?

Re: Downloads in Flask

Verfasst: Samstag 9. April 2022, 11:05
von Dirki
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.