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

如何使用 .NET compact framework 2.0 播放 MIDI 文件?

如何使用 jquery 将打印结果作为 PDF 结果

使用 AFNetworking 2.0 下载 PDF 文件

打印时出现 GhostScript 图像质量问题

使用 AFNetworking 2.0 下载 PDF

线程可以作为另一个用户执行吗? (.NET 2.0/3.5)