我使用CRUD为Order
个对象构建了一个休息服务器。
因此,POST /order
有一个端点可以创建Order
,然后用户可以在POST /order/{order_id}/attachment
上传附件
我也想提供附件,可以在同一个网址上下载。
以便GET /order/{order_id}/attachment
下载附件文件。
但是当我返回werkzeug.datastructures.FileStorage并设置了filename
属性时,浏览器会为我提供一个名称保存的文件:attachment
有没有办法用烧瓶发送文件,在不同的网址上使用正确的文件名?
答案 0 :(得分:2)
@app.route('/order/{order_id}/attachment')
def download_file(order_id):
order = get_order_from_db(order_id)
filename = order.attachment
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
方法可能会派上用场来提供文件。
示例(有点伪编码):
send_from_directory
有关{{1}}的更多信息:http://flask.pocoo.org/docs/0.12/api/#flask.send_from_directory