我已经有相同的'工作'代码了很长一段时间了。从ColdFusion迁移到Railo并将IIS6升级到IIS7.5等后,我在Chrome和Internet Explorer中下载和打开docx文件(以及一些'pdf-files')时出现问题。在Firefox中,一切仍然正常。
我正在使用的代码(用于docx文件)
<cfset fileInfo=#getfileinfo(thefile)#>
<cfheader name="Content-Disposition" value="attachment; filename=""#thefilename#""" charset="utf-8">
<cfheader name="Content-Length" value="#fileInfo.size#">
<cfcontent type="application/vnd.openxmlformats-officedocument.wordprocessingml.document" file="#thefile#">
<cfabort/>
对于其他文件类型我只使用不同的<cfcontent type="">;
我已经尝试过使用不同的mime类型(甚至应用程序/未知)但没有任何作用..
对于ASP,我发现强制response.END
的解决方案适用于损坏的docx文件......但是<cfabort/>
没有做同样的伎俩
任何想法?
同时: 奇怪的是,当我从Chrome将相同的文件保存到磁盘时,它比通过Firefox和Safari下载的相同文件(可以打开并在磁盘上具有确切的FileInfo.size)的几个kb更大(并且无法打开)。 Internet Explorer根本没有下载文件...我收到消息保存或打开,但无论我选择什么都没有发生.... 我试图比较Fiddler的所有值,但我没有看到任何差异。
答案 0 :(得分:1)
我刚刚实施的这个问题的解决方法是有效的:
当然远非理想 - 但它将作为短期解决方案