gpt4 book ai didi

c# - 直接从sql数据库在网页中显示pdf文件,无需将它们保存到服务器文件系统

转载 作者:行者123 更新时间:2023-11-30 14:38:35 26 4
gpt4 key购买 nike

我目前正在使用 html 嵌入标记来显示保存在本地服务器上的 pdf 文件。有没有办法在我的页面上显示 pdf 文件而不必将其保存到服务器的本地文件系统?我只是想将它从 Controller 传递给 View ,这样它就可以在页面中显示为 pdf,而无需直接存储在文件系统中。

或者,是否有一种方法可以在用户离开他们正在查看的页面后调用一种方法从服务器中删除 pdf 文件?我如何判断用户是否已导航离开该页面,以及如何使其触发将删除文件的方法?

最佳答案

我创建了一个名为 PdfResult 的 MVC 类,它返回一个字节数组作为 PDF 文件。

目的如下(无法上传源码,抱歉):

  1. PdfResult 继承自 FileStreamResult
  2. Content-Type header 设置为 application/pdf
  3. Content-Disposition 设置为 attachmentinline,并设置适当的文件名
  4. 将您的数据转换为 Stream -- 如果您的数据是字节数组,则将其写入 MemoryStream

参见 https://stackoverflow.com/a/16673120/272072有关如何执行此操作的一个很好的示例。

然后,您的嵌入代码只需指向操作方法,就好像它是一个 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) ;
}

关于c# - 直接从sql数据库在网页中显示pdf文件,无需将它们保存到服务器文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com