关于让 .mp4 / .wmv 文件在浏览器被下载,而不是直接播放

2015 年 1 月 18 日
 Livid

最近研究了一下这个问题,以前以为只需要添加 Content-Type: application/octet-stream 就可以了,但是发现在 Firefox 和 IE 里还是会被播放,Chrome 和 Safari 里倒是直接下载了。然后 Google 了一下之后发现需要添加的是两个 header:

Content-Type: application/octet-stream
Content-Disposition: attachment

这样的话,在所有浏览器里都是启动下载对话框,而不是直接播放。

关于 Content-Disposition 的更多信息:

http://www.iana.org/assignments/cont-disp/cont-disp.xhtml

12365 次点击
所在节点    HTTP
9 条回复
imn1
2015 年 1 月 18 日
Content-Disposition: attachment
这句比较重要
typcn
2015 年 1 月 18 日
如果由于反代等原因 返回了两个 Content-Disposition 即使完全相同也会导致浏览器拒绝下载
之前就被坑了。。
Showfom
2015 年 1 月 18 日
索性可以直接让所有文件都强制下载
kookxiang
2015 年 1 月 18 日
<a href="*****.mp4" download>
<a href="*****.mp4" download="test.mp4">
这样也行
ericls
2015 年 1 月 18 日
加个download attribute应该可以

还能设置下载的文件名称
jiuzhe
2015 年 1 月 18 日
学习了
clino
2015 年 1 月 18 日
xoxo
2015 年 1 月 18 日
Content-Disposition: attachment, filename="xoxo.avi"

也行,还兼容IE6
foxwoods
2015 年 1 月 18 日
加上这个header兼容性会更好,也更安全:

X-Content-Type-Options: nosniff

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/163126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX