2012-07-13 85 views
0

我有一個返回PDF的.aspx頁面。以下是Page_PreRender上的代碼。ASPX頁面無法在IE7和Windows XP上呈現PDF格式

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調用啓動的。

這工作正常的Windows 7與IE9,Chrome瀏覽器和Firefox。但是,在運行IE7的Windows XP上,瀏覽器只是閃爍,並且沒有窗口打開。 (禁用彈出窗口阻止程序)使用Chrome我在開發者控制檯「資源解釋爲文檔但是使用MIME類型application/pdf傳輸」中出現錯誤,並且該頁面作爲文件下載。

回答

1

我相信它應該是

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

另外,我會打電話Response.End()剛過Response.Flush()