做了一个下载文件的servlet,其中将content-type设为application/x-msdownload,在windows下,表现很正常。在mac下,使用chrome调用该servlet下载文件,也很正常。
但是,但使用mac的safari时,问题来了,文件的后缀都被自动带上了.exe。
怎么解决呢?
不要设为application/x-msdownload,改设为
applicatoin/octet-stream即可(这种格式
代表任意的二进制数据)
再细说下content-type:(节选自
http://w3help.org/zh-cn/causes/CH9001)
content-type用于定义用户的浏览器或相关设备如何显示将要加载的数据。
不同content-type的资源,浏览器会以不同的方式来打开它,具体如下图。同时由下图可知,对于下载文件的servlet,将content-type设为
applicatoin/octet-stream,是比较合适的。
【注1】:这几种 Content-Type 类型在测试环境中的 IE6 IE7 IE8 浏览器弹出的下载对话框提示中,均显示“不可识别类型”。
【注2】:Firefox 会将 URL 和一些错误信息输出在图片格式中显示。
【注3】:Chrome 试图使用 VIDEO 标记直接显示这两种格式的视频。
【笔者注】:我使用IE8、IE7下载
applicatoin/octet-stream文件,是会进行下载的。并不会“显示文件内容”.