Download 将文件流式传输到浏览器时ie9挂起
我使用以下方法将文件(通常是Excel或PDF)流式传输到浏览器。它通过将隐藏iFrame的位置设置为包含代码的下载处理程序来操作 t在Firefox等以及IE9的某些实例中运行良好,但在IE9的其他实例中则不行 如果不起作用,则会显示信息栏,但没有打开选项,只有保存或取消 信息栏将挂起,无法关闭或取消 此外,URL也会更改,以便将文件前缀(例如.xls或.pdf)前的点更改为下划线 一个典型的正确答案是Download 将文件流式传输到浏览器时ie9挂起,download,internet-explorer-9,Download,Internet Explorer 9,我使用以下方法将文件(通常是Excel或PDF)流式传输到浏览器。它通过将隐藏iFrame的位置设置为包含代码的下载处理程序来操作 t在Firefox等以及IE9的某些实例中运行良好,但在IE9的其他实例中则不行 如果不起作用,则会显示信息栏,但没有打开选项,只有保存或取消 信息栏将挂起,无法关闭或取消 此外,URL也会更改,以便将文件前缀(例如.xls或.pdf)前的点更改为下划线 一个典型的正确答案是 /export_templates/rawdata/downloadfile7.asp?f
/export_templates/rawdata/downloadfile7.asp?fID=@_pdf@{875CFEE5-23D4-42CB-8885-7A9D493DC616}.pdf&fname=Quick%5Fpoll.pdf
是否有人看到了这一点或找到了修复方法。没有加载项启用,没有av阻止它。我们已经比较了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.)不引用文件名。我在使用时发现了一些问题:
内容配置:附件;filename=文件名.pdf
vs。
内容配置:附件;filename=“File Name.pdf”
注意文件名周围的双引号。当名称包含空格或其他不安全字符时,这一点很重要
2.)内容类型错误。如上所述,这是系统如何处理文件的一个重要提示。对于PDF,您确实应该使用application/PDF
3.)不同的传输编码。这个问题可能只影响gzip(deflate)内容。这不是IE第一次不能正确处理压缩流
4.)如果在同一浏览器的副本之间看到不同的结果,则应尝试确定它们是否具有相同的次要版本以及操作系统、插件、工具栏和PDF阅读器。这些都可能是一个因素。我也有同样的问题,也没有任何建议:(我也有同样的问题,也没有任何建议,但有一个进一步的观察。我在IIS express和IIS 7.5上运行相同的代码库。具有IE9的计算机与IIS express没有问题,但与IIS 7.5有问题。具有IE9的其他计算机与这两个服务器都没有问题。您是否尝试将ContentType设置为sp具体值?例如,如果是PDF,则将其设置为application/PDF。我也有同样的问题,但肯定正确设置了ContentType,以便在IE9以外的浏览器中通过Foxit打开PDF,通过excel打开电子表格等。很好,但您能告诉我们哪一步解决了您的问题吗?为了其他人的利益?解决方案是文件名周围的双引号吗