Flask/Werkzeug 如何将 HTTP 内容长度标头附加到文件下载
-
26-09-2019 - |
题
我正在使用 Flask(基于 Werkzeug),它使用 Python。
用户可以下载文件,我正在使用 send_from_directory
-功能.
然而,当实际下载文件时,HTTP 标头 content-length
未设置。因此用户不知道正在下载的文件有多大。
我可以用 os.path.getsize(FILE_LOCATION)
在Python中获取文件大小(以字节为单位),但找不到设置的方法 content-length
烧瓶中的标头。
有任何想法吗?
解决方案
我相信你会做这样的事情(未经测试):
from flask import Response
response = Response()
response.headers.add('content-length', str(os.path.getsize(FILE_LOCATION)))
其他提示
从版本 0.6 开始,向响应对象添加标头的规范方法是通过 make_response
方法(参见 Flask 文档).
def index():
response = make_response(render_template('index.html', foo=42))
response.headers['X-Parachutes'] = 'parachutes are cool'
return response
我需要这个,但是对于每一个请求,所以这里是我做了什么(基于DOC):
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
不隶属于 StackOverflow