python - 在 python 中设置 flask.response
问题描述
我想知道当您发送烧瓶响应时,是否允许您在一个标头中同时拥有内容类型和内容处置。目前,我的代码运行为:
headers = {
"Content-Type" : mimetype,
"Content-Disposition":
"attachment;filename={}".format(flask.request.args.get('filename', key)),
}
return flask.Response(data, 200, headers)
但是当我单击链接下载它时,它会以文本文件的形式返回,名称为“下载”。当我将文件类型更改为应有的文件类型时,当我右键单击文件链接另存为时,它也会变成正确的文件。
在同一个标题中设置我的内容类型和内容处置是否有问题?因为我认为内容处置没有被注册,因为文件不会以名为下载的文本文档的形式返回。
解决方案
我正在使用一种稍微不同的方法来创建有效的响应:
from flask import make_response
##
##
resp = make_response(logs)
filename = "applog_%s.log" % datetime.now()
filename = filename.replace(" ", "_")
resp.headers['Content-Disposition'] = 'attachment;filename=' + filename
resp.mimetype = "text/plain"
return resp
编辑
还要确保你的filename
论点中没有任何空格。我记得有一次让我很难受,这就是我用下划线替换空格的原因,正如您在上面的代码中看到的那样。
推荐阅读
- python - 在python中如何创建一个由1到100的数字组成的向量,每个数字重复100次
- docker - Docker:在 jenkinsfile 中运行 cmds 时找不到
- javascript - 为什么单击按钮时 JavaScript 有时无法正常工作?
- tomcat - 信息:在 java.library.path 上找不到允许使用 OpenSSL 的 Apache Tomcat Native 库:
- google-cloud-platform - 解决上传 CSV 到 Google Cloud Platform AI Dataset 的错误编码
- javascript - 为什么我使用 axios 的简单获取请求不会返回控制器返回的内容?
- java - 想要在java中更改csv文件中的数据时出错
- mysql - 从mysql日志中的行中删除特定单词
- r - R中是否有一种有效的方法可以将矩阵M2的每一行“粘贴”到矩阵M1的每一行以获得所有可能的组合?
- python - 我在使用 windows 安装 polyglot 时遇到问题