如何使用 .NET 2.0 将 PDF 文件作为二进制流传输到浏览器
Posted
技术标签:
【中文标题】如何使用 .NET 2.0 将 PDF 文件作为二进制流传输到浏览器【英文标题】:How to stream a PDF file as binary to the browser using .NET 2.0 【发布时间】:2010-09-10 05:51:22 【问题描述】:我正在寻找一种使用 .NET 2.0(二进制)将 PDF 文件从我的服务器流式传输到浏览器的方法。
我正在尝试从服务器路径中获取现有的 PDF 文件并将其作为二进制文件推送到浏览器。
【问题讨论】:
这与将 PDF 放到服务器上并通过 URL 提供服务有何不同?这是动态生成的 PDF 吗? @spoon16,这种方法存在一些安全问题,因为任何人都可以从页面的视图源中看到 pdf url。由于这些是静态文件(.pdf、.htm...等),它们将由 IIS 直接提供给请求此 URL 的任何人,而无需检查他们是否已登录。 【参考方案1】:-
设置内容类型:
Response.ContentType = "application/pdf"
设置 ContentDisposition,如果您想为文件指定一个新名称:Response.Headers.Add("Content-Disposition", "attachment: filename=file.pdf");
如 Kopp 先生所说,使用Response.OutputStream
编写内容。
第 2 步并非绝对必要,但如果您不希望浏览器尝试使用与您的 ASPX 文件相同的名称保存 PDF,这可能是一个好主意。
【讨论】:
【参考方案2】:将二进制文件写入输出流Response.OutputStream
。然后只需添加标题Content-Disposition
标题。
【讨论】:
【参考方案3】:给你:How To Write Binary Files to the Browser Using ASP.NET and Visual C# .NET
【讨论】:
【参考方案4】:您可以只设置一个处理程序或设置正确响应类型的页面并将 pdf 输出到响应输出缓冲区。
【讨论】:
以上是关于如何使用 .NET 2.0 将 PDF 文件作为二进制流传输到浏览器的主要内容,如果未能解决你的问题,请参考以下文章