A B*_*gus 8 c# pdf asp.net-mvc
我收到一个byte[]
包含PDF的内容.
我需要在浏览器中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");
}
Run Code Online (Sandbox Code Playgroud)
如果您已经有了 byte[],则应该使用FileContentResult
,它“将二进制文件的内容发送到响应”。仅FileStreamResult
在您打开流时使用。
public ActionResult DisplayPDF()
{
byte[] byteArray = GetPdfFromDB();
return new FileContentResult(byteArray, "application/pdf");
}
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以直接在浏览器中显示字节数组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");
}
}
Run Code Online (Sandbox Code Playgroud)