如何将pdf转换为内存流

时间:2014-02-17 10:48:57

标签: c# .net asp.net-mvc-4

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

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:8)

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

return File(@"C:\MyFile.pdf", "application/pdf");

另一个解决方案是使用接受byte[]

的重载
return File(System.IO.File.ReadAllBytes(@"C:\Myfile.pdf"), "application/pdf");

或者如果您想使用FileStream

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

答案 1 :(得分:5)

完成了工作

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

答案 2 :(得分:1)

使用使用文件名see here的重载。当你有一个物理文件时,这是最简单的解决方案。