从数据库中提取 pdf 并将其显示在我的 cshtml 上
Posted
技术标签:
【中文标题】从数据库中提取 pdf 并将其显示在我的 cshtml 上【英文标题】:Extract pdf from database and display it on my cshtml 【发布时间】:2015-08-27 05:16:27 【问题描述】:我正在从事一个项目,该项目应显示餐厅信息以及 pdf 文件。我已经能够将我的 pdf 保存到我的数据库中。但我不知道如何从我的数据库中提取它,然后将其显示在我的 .cshtml 上。
我正在使用带有 MSSQL 服务器的 VS 和 MVC4。
这是下载文件的代码。
var fileName = Path.GetFileName(TempVM.Resturang.PDF_File.FileName);
var filePath = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
TempVM.Resturang.PDF_File.SaveAs(filePath);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
br.Close();
fs.Close();
TempVM.Resturang.PDF_FileName = fileName;
TempVM.Resturang.PDF_Data = bytes;
TempVM.Resturang.PDF_ContentType = filePath;
文件来自对象
public HttpPostedFileBase PDF_File get; set;
并且数据存储为
[PDF_Data] VARBINARY (MAX) NULL,
[PDF_ContentType] VARCHAR(MAX) NULL,
[PDF_FileName] VARCHAR(MAX) NULL,
用sql代码存储
cmd.Parameters.Add("@PDF_FileName", SqlDbType.VarChar).Value = Resturang.PDF_FileName;
cmd.Parameters.Add("@PDF_ContentType", SqlDbType.VarChar).Value = Resturang.PDF_ContentType;
cmd.Parameters.Add("@PDF_Data", SqlDbType.VarBinary).Value = Resturang.PDF_Data;
但是知道我不知道如何提取存储在我的数据库中的 pdf 文件,然后将其显示在我的 .cshtml 页面上,以便我可以查看它并可以从 -cshtml 页面下载它。
【问题讨论】:
【参考方案1】:您可能需要一个输出 PDF 的操作,例如:
public ActionResult GetDocument(int id)
TempVM model = GetViewModel();
if (model.PDF_Data.Length > 0)
return File(model.PDF_Data, model.PDF_ContentType);
else
return View("NotFound");
然后在您的输出视图中,您只需将其包含为超链接,如下所示:
@Html.ActionLink("View doc", "GetDocument", new ID = 1)
【讨论】:
谢谢伙计!你为我爱上了它!真的真的很感谢! 没问题。如果这对您有用,请考虑单击旁边的勾号 - 清除问题并将其从“打开”列表中删除。以上是关于从数据库中提取 pdf 并将其显示在我的 cshtml 上的主要内容,如果未能解决你的问题,请参考以下文章
Google Cloud Vision API PDF 文本提取
使用公共 API 从站点中提取 JSON 数据并将其异步显示在页面上