将PDF流式传输到新的浏览器实例或标签?

时间:2009-07-10 21:49:26

标签: pdf streaming response

我想将PDF流式传输到新的浏览器实例。我目前有这个

Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition", "inline; filename=""" & Path.GetFileName(pdfFile) & """")
Response.AddHeader("Content-Length", stream.Length)
Response.BinaryWrite(stream.ToArray())
Response.Flush()

但这会接管我现有的窗口,并将我导航离开页面。我想生成一个新的选项卡或窗口并在那里显示PDF。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:3)

您可能需要考虑<a> target attribute。您可以使用它在新窗口中打开PDF,可能使用以下内容:

<a href="GeneratePdf.ashx?somekey=10" target="_blank">

更新 - 正如您现在所说的那样,您不介意它是否在浏览器窗口中,我首选的技术是根据MercerTraieste答案将内容处置更改为附件。

如果您使用的是ASP.NET,那么考虑编写自定义HttpHandler来为您流式传输PDF绝对是一个好主意。

答案 1 :(得分:3)

您可以强行下载,这种方法可以解决您的问题:

Response.AddHeader("Content-Disposition", "attachment;filename""" & Path.GetFileName(pdfFile) & """")