下载 – ie9挂起时流文件到浏览器

前端之家收集整理的这篇文章主要介绍了下载 – ie9挂起时流文件到浏览器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下方式将文件(通常为Excel或PDF)流式传输到浏览器.它通过将隐藏的iFrame的位置设置为包含代码的下载处理程序来进行操作.

在Firefox等工作正常,在IE9的某些实例中,但不是IE9的其他实例.

不起作用的信息栏出现,但没有选项可以打开,只保存或取消.

信息栏然后挂起,不能关闭或取消.

此外,URL更改为使文件前缀(例如.xls或.pdf)之前的点更改为下划线.

一个典型的正确的是

/export_templates/rawdata/downloadfile7.asp?fID=@_pdf@{875CFEE5-23D4-42CB-8885-7A9D493DC616}.pdf&fname=Quick%5Fpoll.pdf

有没有人看到这个或找到一个修复.没有启用加载项,不会停止它.我们比较了IE,av和防火墙在机器上的设置,并且不起作用,并且它们是相同的.

Set adoStream = CreateObject("ADODB.Stream")
adoStream.Open()
adoStream.Type = 1
adoStream.LoadFromFile(f.Path)
dataSize = f.size
Response.Buffer = true
Response.CharSet = "UTF-8"
Response.clear
Response.ContentType = "application/x-unknown" ' arbitrary
Response.AddHeader "Content-Length",dataSize
Response.AddHeader "Content-Disposition","attachment;filename=" & thisfname

Response.flush
do while not adoStream.eos
    Response.BinaryWrite adoStream.Read(1024 * 8)
    Response.flush
loop
Response.End()
adoStream.close
set adoStream=nothing

解决方法

我看到上面的代码有两个潜在的问题和两个潜在的“减轻情况”:

1.)不引用文件名.在使用过程中遇到问题:

Content-Disposition:attachment; filename = File Name.pdf

Content-Disposition:attachment; filename =“File Name.pdf”

注意文件名的双引号.当名称包含空格或其他不安全字符时,这一点很重要.

2.)内容类型错误.如上述注释所述,这是系统应该如何处理文件的重要线索.对于PDF,你真的应该使用application / pdf

3.)不同的传输编码.这个问题只能影响gzipped(deflate)内容. IE不能第一次正确处理压缩流.

4.)如果您在同一浏览器的副本之间看到不同的结果,您应该尝试确定它们是否具有相同的次要版本以及os,plugins,toolbars和PDF阅读器.任何这些事情都可能是一个因素.

原文链接:/java/126406.html

猜你在找的Java相关文章