0

我有一个返回 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 传输”中出现错误,并且该页面作为文件下载。

4

1 回答 1

1

我相信应该是

 Response.AddHeader("Content-Disposition", "attachment; filename=PDFFile.pdf")

另外,我会Response.End()在之后打电话Response.Flush()

于 2012-07-13T19:22:22.887 回答