2

很长一段时间以来,我都有相同的“工作”代码。从 ColdFusion 迁移到 Railo 并将 IIS6 升级到 IIS7.5 等后,我在 Chrome 和 Internet Explorer 中下载和打开 docx 文件(以及一些“pdf 文件”)时遇到问题。在 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 的所有值,但我没有看到任何差异。

4

1 回答 1

1

我刚刚实施并且有效的解决此问题的方法:

  • 在网络可访问的目录中制作文件的(临时)副本
  • cflocation 到那个文件

当然远非理想 - 但它会作为短期解决方案

于 2013-09-14T11:44:19.127 回答