我有一个返回 PDF 的 .aspx 页面。下面是 Page_PreRender 上的代码。
Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
Dim pdfStream As MemoryStream
pdfStream = CType(Cache("PdfViewerContent"), MemoryStream)
Response.BufferOutput = True
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("Cache-control", "no-store")
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Length", pdfStream.Length.ToString())
Response.AddHeader("Content-Disposition", "attachment=PDFFile.pdf")
Response.BinaryWrite(pdfStream.ToArray())
Response.Flush()
HttpContext.Current.ApplicationInstance.CompleteRequest()
End Sub
此页面是从 window.open javascript 调用启动的。
这在带有 IE9、Chrome 和 Firefox 的 Windows 7 上运行良好。但是,在运行 IE7 的 Windows XP 上,浏览器只是闪烁,没有打开任何窗口。(弹出窗口阻止程序已禁用)使用 Chrome 时,我在开发者控制台“资源解释为文档但使用 MIME 类型应用程序/pdf 传输”中出现错误,并且该页面作为文件下载。