ASPX页面不会在Windows XP中的IE7和Chrome中呈现PDF

时间:2012-07-13 19:14:04

标签: asp.net windows pdf

我有一个返回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类型application / pdf传输”时收到错误,页面将作为文件下载。

1 个答案:

答案 0 :(得分:1)

我认为应该是

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

另外,我会在Response.End()

之后致电Response.Flush()