You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman接收Flask文件行为不一致求助:需统一弹出保存对话框

问题分析与解决方案

这问题我之前调试接口时也碰到过,核心原因是Postman会根据响应的Content-Type头来决定是直接展示内容还是触发下载对话框,而Flask的send_file在未手动指定MIME类型时,会根据文件扩展名自动推断类型,这就导致了PDF和DOC的行为差异:

  • 对于PDF文件,Flask自动推断的MIME类型是application/pdf,Postman识别到这个类型后,默认触发“另存为”对话框;
  • 对于DOC文件,Flask自动推断的MIME类型是application/msword,Postman认为这个类型的内容可以尝试解析展示,于是就直接显示原始数据了。

要让两种文件的行为保持一致,始终弹出保存对话框,最简单的方法是手动指定mimetype为application/octet-stream——这是通用的二进制流MIME类型,任何客户端都会将其视为需要下载的文件,而不会尝试解析展示。

修改后的代码如下:

# PDF文件(也可以统一指定mimetype,保持风格一致)
flask.send_file('C:\A.pdf', as_attachment=True, attachment_filename="A.pdf", mimetype='application/octet-stream')

# DOC文件
flask.send_file('C:\B.doc', as_attachment=True, attachment_filename="B.doc", mimetype='application/octet-stream')

另外补充一点:虽然as_attachment=True已经会在响应头中添加Content-Disposition: attachment; filename="xxx",但部分工具(比如Postman)仍会结合Content-Type来判断最终行为,所以指定application/octet-stream是最稳妥的方案。

内容的提问来源于stack exchange,提问作者Noam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:18:10