如何将pdf转换为内存流

use*_*329 7 .net c# asp.net-mvc-4

我正在MVC4中编写一个应用程序.

我在服务器上有一个物理pdf文件.我想将其转换为内存流并将其发送回用户,如下所示:

return File(stream, "application/pdf", "myPDF.pdf");
Run Code Online (Sandbox Code Playgroud)

但是如何将pdf文件转换为内存流?

谢谢!

dko*_*ozl 9

你不需要MemoryStream.最简单的方法是使用接受文件名的重载:

return File(@"C:\MyFile.pdf", "application/pdf");
Run Code Online (Sandbox Code Playgroud)

另一个解决方案是使用接受的重载byte[]:

return File(System.IO.File.ReadAllBytes(@"C:\Myfile.pdf"), "application/pdf");
Run Code Online (Sandbox Code Playgroud)

或者如果你想使用FileStream:

return File(new FileStream(@"C:\MyFile.pdf", FileMode.Open, FileAccess.Read), "application/pdf");
Run Code Online (Sandbox Code Playgroud)


use*_*329 5

解决了这个问题

 var pdfContent = new MemoryStream(System.IO.File.ReadAllBytes(imageLocation));
                pdfContent.Position = 0;
                return new FileStreamResult(pdfContent, "application/pdf");
Run Code Online (Sandbox Code Playgroud)