最近研究了一下这个问题,以前以为只需要添加 Content-Type: application/octet-stream
就可以了,但是发现在 Firefox 和 IE 里还是会被播放,Chrome 和 Safari 里倒是直接下载了。然后 Google 了一下之后发现需要添加的是两个 header:
Content-Type: application/octet-stream
Content-Disposition: attachment
这样的话,在所有浏览器里都是启动下载对话框,而不是直接播放。
关于 Content-Disposition 的更多信息:
1
imn1 2015-01-18 02:29:18 +08:00
Content-Disposition: attachment
这句比较重要 |
2
typcn 2015-01-18 02:52:11 +08:00 2
如果由于反代等原因 返回了两个 Content-Disposition 即使完全相同也会导致浏览器拒绝下载
之前就被坑了。。 |
3
Showfom 2015-01-18 03:07:44 +08:00
索性可以直接让所有文件都强制下载
|
4
kookxiang 2015-01-18 03:53:32 +08:00 6
<a href="*****.mp4" download>
<a href="*****.mp4" download="test.mp4"> 这样也行 |
5
ericls 2015-01-18 04:18:22 +08:00 1
加个download attribute应该可以
还能设置下载的文件名称 |
6
jiuzhe 2015-01-18 08:18:11 +08:00
学习了
|
7
clino 2015-01-18 09:38:51 +08:00
|
8
xoxo 2015-01-18 10:22:43 +08:00
Content-Disposition: attachment, filename="xoxo.avi"
也行,还兼容IE6 |
9
foxwoods 2015-01-18 11:28:46 +08:00 1
加上这个header兼容性会更好,也更安全:
X-Content-Type-Options: nosniff |