11.请求文件接口,但是自动下载了

2/14/2023 笔记

# 问题:

请求后端文件接口,接口直接返回二进制流,此时文件会自动下载

# Content-Disposition

在常规的 HTTP 应答中,Content-Disposition 响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。

# 语法

  • 作为消息主体中的消息头 在 HTTP 场景中,第一个参数或者是 inline(默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示),或者是 attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将 filename 的值预填为下载后的文件名,假如它存在的话)
Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"
1
2
3
  • 作为 multipart body 中的消息头 在 HTTP 场景中。第一个参数总是固定不变的 form-data;附加的参数不区分大小写,并且拥有参数值,参数名与参数值用等号 ('=') 连接,参数值用双引号括起来。参数之间用分号 (';') 分隔。
Content-Disposition: form-data
Content-Disposition: form-data; name="fieldName"
Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"
1
2
3

# 解决:

与后端返回此文件时,响应头Content-Disposition属性有关
Content-Disposition值为attachement时,即告诉浏览器,这个资源需要下载而不是用相应的程序打开。需要去掉这个属性。

最近更新时间: 2/14/2023, 2:30:01 AM
강남역 4번 출구
Plastic / Fallin` Dild