如何使用 .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 文件作为二进制流传输到浏览器的主要内容,如果未能解决你的问题,请参考以下文章