项目记录:旧的iOS不能正确下载Excel文件

今天测试发现一个问题:使用旧的iOS系统请求下载Excel文件的接口,最后下载下的文件多添加了一个.xls后缀,这也导致手机不能正常的打开Excel文件。

但是这个问题在Android手机,PC和较新的ios系统中却不存在这个问题。

搜索了一下,根据这篇文章找到了问题的原因。https://blog.csdn.net/xueyuanjiayou/article/details/84628218

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

当 Content-type 设置为 text/html 时,下载的文件会被自动添加上后缀 .html;
当设置为 application/x-msdownload 时,下载的文件会被自动添加后缀 .exe。
content-type 用于告诉浏览器应该以何种方式处理文件。浏览器会尽量以可识别的方式来打开它,如图一为相关的测试情况:
如果你觉得针对不同文件类型区别设置不同的 Content-type 太麻烦,那么将它设置为 application/octet-stream 是比较好的选择。

我在项目设置的是

response.setContentType("application/msexcel");

改成了application/octet-stream就可以正常了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章