Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flask shows TypeError: send_from_directory() missing 1 required positional argument: 'path'

Tags:

python

flask

When I deploy my Flask app on Azure, the view raises TypeError: send_from_directory() missing 1 required positional argument: 'path'. This isn't happening when I run locally.

from flask import send_from_directory

@app.route('/download/<path:filename>', methods=['GET', 'POST'])
def download(filename):
    uploads = os.path.join(app.root_path, app.config['UPLOAD_FOLDER'])
    return send_from_directory(directory=uploads, filename=filename)
like image 629
leo_dicaprio_of_data Avatar asked May 09 '26 20:05

leo_dicaprio_of_data


2 Answers

Change the final line to return send_from_directory(uploads, filename).

See the Flask docs about send_from_directory. The changelog at the bottom that says "Changed in version 2.0: path replaces the filename parameter."

If you still want to use named parameters, change filename= to path=. send_from_directory(directory=uploads, path=filename)

like image 153
Josh Liu Avatar answered May 11 '26 10:05

Josh Liu


return send_from_directory(directory=uploads, filename=filename)

change to

return send_from_directory(directory=uploads, path=filename, as_attachment=True)
like image 25
arunraj Avatar answered May 11 '26 11:05

arunraj



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!