我正在MVC4中编写一个应用程序。
我在服务器上有一个物理pdf文件。我想将其转换为内存流并将其发送回用户:
return File(stream, "application/pdf", "myPDF.pdf");
但是如何将pdf文件转换为内存流?
谢谢!
答案 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的重载。当你有一个物理文件时,这是最简单的解决方案。