c# MVC网站PDF文件存储在字节数组中,在浏览器中显示
本文关键字:MVC 数组 浏览器 显示 字节数 字节 PDF 文件 存储 网站 | 更新日期: 2023-09-27 18:17:09
我收到一个包含PDF的byte[]
。
我需要采取byte[]
并在浏览器中显示PDF 。我发现类似的问题像这样-如何在MVC返回PDF到浏览器?但是,它在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");
}
如果您已经有字节[],您应该使用FileContentResult
,它"将二进制文件的内容发送到响应"。只有当你有一个流打开时才使用FileStreamResult
。
public ActionResult DisplayPDF()
{
byte[] byteArray = GetPdfFromDB();
return new FileContentResult(byteArray, "application/pdf");
}
您可以直接在浏览器中显示字节数组PDF,只需使用MemoryStream
而不是Stream
和FileStreamResult
而不是File
:
public ActionResult DisplayPDF()
{
byte[] byteArray = GetPdfFromDB();
using( MemoryStream pdfStream = new MemoryStream())
{
pdfStream.Write(byteArray , 0,byteArray .Length);
pdfStream.Position = 0;
return new FileStreamResult(pdfStream, "application/pdf");
}
}