Firefox偶尔会显示文件流而不是文档

时间:2010-02-22 15:59:07

标签: asp.net firefox download

当用户请求下载文档时,我正在使用HttpResponse.OutputStream.Write方法将PDF文件写入HttpResponse。它适用于除Firefox(3.5.8)之外的所有浏览器。在Firefox中,它有时会显示文件,有时会显示实际的字节流。当它显示字节流时,http响应永远不会完成。我看到'传输数据'状态,字节流以EOF结束。过了一段时间,我得到'连接被重置'窗口。

alt text http://img31.imageshack.us/img31/7907/displaybytes.png alt text http://img193.imageshack.us/img193/7246/displayendofstream.png alt text http://img211.imageshack.us/img211/1774/timeout.png

这是响应标题:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 103185
Content-Type: application/pdf
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727
Content-Description: stuff.pdf
Content-Disposition: inline;filename="stuff.pdf"
X-Powered-By: ASP.NET
Date: Mon, 22 Feb 2010 16:15:38 GMT

5 个答案:

答案 0 :(得分:1)

它可能还与分配给文档的mime类型的操作有关。例如在FF actions can be set

但当然您还需要确保服务器正在传输correct mime type

答案 1 :(得分:1)

我认为这个问题最有可能发生在Firefox或Acrobat插件中。

每当某些事情有时起作用而其他事情不起作用时,你必须密切关注这些差异。问题始终存在差异。

在您的情况下,您可能永远不知道原因,因为差异可能出在浏览器或插件中。你的标题看起来应该看起来像。它适用于所有其他浏览器。根据您的标题,这也是它在此浏览器中的工作方式。

我会向Mozilla提出这个问题并看看他们要说些什么。

作为一种潜在的解决方法,当用户的浏览器为FF时,您可以尝试将内容处置更改为“附件”。这将导致出现“打开或保存”对话框。然后,您的用户仍然可以点击“打开”在页面中查看。

Content-Disposition: attachment; filename=stuff.pdf

答案 2 :(得分:0)

当内联呈现的PDF文件受源代码控制且只读时,我们遇到了这个问题。我们使用VSS进行源代码控制,当我们部署PDF时,它的呈现方式与屏幕截图中的完全相同。然后,我们放了新的PDF副本然后它工作得很好。也许检查PDF是否只读,如果是,请尝试取出readonly属性并重试。

希望这有帮助。

谢谢,

拉​​加

答案 3 :(得分:0)

如果您右键单击并另存为保存为正确的PDF,您可以查看?我怀疑你写错了PDF或你的标题是错误的。

答案 4 :(得分:0)

看起来它没有完成请求。解决方案是将Response.End()放在最后。