我有一个返回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传输”时收到错误,页面将作为文件下载。
答案 0 :(得分:1)
我认为应该是
Response.AddHeader("Content-Disposition", "attachment; filename=PDFFile.pdf")
另外,我会在Response.End()
Response.Flush()