Aar*_*ten 5 c# sql embed pdf asp.net-mvc-3
我目前正在使用 html 嵌入标签来显示保存在本地服务器上的 pdf 文件。有没有办法在我的页面上显示 pdf 文件,而不必将其保存到服务器的本地文件系统?我只是想将它从控制器传递到视图,以便它可以在页面中显示为 pdf,而无需将其直接存储在文件系统上。
或者,有没有办法在用户离开他们正在查看的页面后调用从服务器删除 pdf 文件的方法?如何判断用户是否已离开该页面以及如何触发删除文件的方法?
我创建了一个名为的 MVC 类PdfResult,它返回一个字节数组作为 PDF 文件。
目的如下(无法上传源码,抱歉):
PdfResult继承自FileStreamResultContent-Type标题设置为application/pdf Content-Disposition或attachment,inline并设置适当的文件名 Stream- 如果您的数据是字节数组,则将其写入到 a MemoryStream。有关如何执行此操作的一个很好的示例,请参阅/sf/answers/1167118431/ 。
然后,您的嵌入代码只需指向操作方法,就像它是 PDF 文件一样。
这是一个例子:
public ActionResult ShowPdf() {
// Note: the view should contain a tag like <embed src='MyController/GetPdf'>
return View();
}
public ActionResult GetPdf() {
byte[] pdfBytes = dataRepo.GetPdf(...);
return new PdfResult(pdfBytes, "Filename.pdf", false) ;
}
Run Code Online (Sandbox Code Playgroud)