safari 附件下载文件被添加后缀(html\exe等)的问题

10,471次阅读
一条评论

共计 473 个字符,预计需要花费 2 分钟才能阅读完成。

通过程序读取文件或生成文件来下载,一般只需设置 header 头即可:

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="保存时的文件名.pdf"');

在谷歌、火狐等浏览器中,Content-type 的设置貌似并不重要,但在 Safari 上则有不同:

  • 当 Content-type 设置为 text/html 时,下载的文件会被自动添加上后缀 .html;
  • 当设置为 application/x-msdownload 时,下载的文件会被自动添加后缀 .exe。

content-type 用于告诉浏览器应该以何种方式处理文件。浏览器会尽量以可识别的方式来打开它,如图一为相关的测试情况:

safari 附件下载文件被添加后缀(html\exe等)的问题

从图一可以看出,如果你觉得针对不同文件类型区别设置不同的 Content-type 太麻烦,那么将它设置为 applicatoin/octet-stream 是比较好的选择。

相关参考

http://www.cfanz.cn/?c=article&a=read&id=80293

正文完
 0
任侠
版权声明:本站原创文章,由 任侠 于2015-12-23发表,共计473字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
验证码
yiluyingxiao 评论达人 LV.1
2015-12-29 09:42:31 回复
Sogou Explorer Sogou Explorer Windows 7 Windows 7

提前祝您新年快乐。
乙未年(羊)冬月十九 2015-12-29

 Windows  Chrome  中国山东省菏泽市联通