C# MVC 网站 PDF 文件存储在字节数组中,在浏览器中显示

作者:编程家 分类: 编程代码 时间:2025-09-17

C# MVC 网站中如何将 PDF 文件存储在字节数组中,并在浏览器中显示

在开发 C# MVC 网站时,我们经常需要处理文件上传和下载的功能。有时候,我们可能需要将 PDF 文件存储在字节数组中,并在浏览器中直接显示该文件,而不是下载到本地再打开。本文将介绍如何实现这一功能,并提供相应的案例代码。

首先,我们需要使用 `System.IO` 命名空间中的 `File.ReadAllBytes` 方法将 PDF 文件读取为字节数组。该方法接收文件的路径作为参数,并返回一个字节数组表示的文件内容。

csharp

string filePath = "path/to/pdf/file.pdf";

byte[] fileBytes = File.ReadAllBytes(filePath);

接下来,我们需要在控制器中将字节数组作为响应返回给浏览器。在 MVC 模式中,我们可以使用 `FileContentResult` 类来实现这一功能。该类接收一个字节数组和文件的 MIME 类型作为参数,并将字节数组以指定的 MIME 类型返回给浏览器。

csharp

return File(fileBytes, "application/pdf");

现在,我们已经将 PDF 文件存储在字节数组中,并且可以直接在浏览器中显示该文件。在视图中,我们可以使用 `object` 类型的 `Model` 属性来获取字节数组,并通过 HTML 标签 `` 将其显示为 PDF 文件。

html

这样,当用户访问该页面时,浏览器将直接显示 PDF 文件,而不是下载到本地。

示例代码:

csharp

public ActionResult DisplayPDF()

{

string filePath = "path/to/pdf/file.pdf";

byte[] fileBytes = File.ReadAllBytes(filePath);

return File(fileBytes, "application/pdf");

}

html

@model byte[]

显示 PDF 文件

通过以上步骤,我们可以将 PDF 文件存储在字节数组中,并在浏览器中直接显示该文件。这种方法可以方便地实现在线预览 PDF 文件的功能,提供了更好的用户体验。

参考资料:

- [File.ReadAllBytes 方法 (System.IO) | Microsoft Docs](https://docs.microsoft.com/zh-cn/dotnet/api/system.io.file.readallbytes)

- [FileContentResult 类 (System.Web.Mvc) | Microsoft Docs](https://docs.microsoft.com/zh-cn/dotnet/api/system.web.mvc.filecontentresult)