我正在使用 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)))

看: Werkzug 的 Headers 对象Flask 的 Response 对象.

其他提示

从版本 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top