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

标签 c# asp.net-mvc pdf

我收到一个包含 PDF 的 byte[]

我需要获取 byte[]在浏览器中显示 PDF。 我发现了类似的问题 - How to return PDF to browser in MVC? . 但是,它在 PDF 查看器中打开 PDF,我也收到一条错误消息,提示无法打开文件,因为它是 - “不支持的文件类型或因为文件已损坏”。

如何在浏览器中打开 PDF?到目前为止,我的代码如下所示 -

    public ActionResult DisplayPDF()
    {
        byte[] byteArray = GetPdfFromDB();
        Stream stream = new MemoryStream(byteArray);
        stream.Flush(); 
        stream.Position = 0; 

        return File(stream, "application/pdf", "Labels.pdf");
    }

最佳答案

如果你已经有了 byte[],你应该使用 FileContentResult ,它“将二进制文件的内容发送到响应”。仅在打开流时使用 FileStreamResult

public ActionResult DisplayPDF()
{
    byte[] byteArray = GetPdfFromDB();

    return new FileContentResult(byteArray, "application/pdf");
}

关于C# MVC网站PDF文件以字节数组形式存储,在浏览器中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943776/

相关文章:

c# - 重复 ViewComponent 数据

c# - 如何使用 .Net 从端点下载证书?

c# - 在(不适用于)Windows 8 ARM 平板电脑上编译 C#

Jquery-Unobtrusive-Ajax 未找到数据-ajax-更新

asp.net - 使用 ASP.NET MVC 属性路由时的默认路由

c# - 你如何使用C#从pdf文件中提取图像

pdf - 如何替换/删除 PDF 文件中的文本

c# - 如何使用 .NET 按字符串拆分字符串并包含分隔符?

javascript - 在 html 部分 View 中以模式显示 dataTable 时出现问题

javascript - Electron ,来自 BrowserWindow 的 printToPDF