我想将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。
有谁知道怎么做?
答案 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) & """")