@if (list != null && list.Count>0) { <tr> <td>申請表</td> <td><a href="/policy/declare/readPDF/?coinfigid=@ViewBag.coinfigid" target="_blank" class="layui-btn layui-btn-normal layui-btn-xs">預覽</a></td> </tr> if (ViewBag.hascheck == 1) { <tr> <td>確認單</td> <td><a href="/policy/declare/readPDF/?coinfigid=@ViewBag.coinfigid&type=1" target="_blank" class="layui-btn layui-btn-normal layui-btn-xs">預覽</a></td> </tr> } foreach (var item in list) { <tr> <td>@item.contractname</td> <td><a href="/policy/declare/readPDF/?id=@item.ID&coinfigid=@ViewBag.coinfigid" target="_blank" class="layui-btn layui-btn-normal layui-btn-xs">預覽</a></td> </tr> } }
服務端: /// <summary> /// 讀取PDF文件 /// </summary> /// <param name="fName">文件名稱(可以從其他地方傳進來)</param> /// <returns></returns> public FileStreamResult readPDF(string coinfigid, int id = 0, int ischeck = 0) { var model = dbContext.policy_declaredata.FirstOrDefault(m => m.username == LoginUser); var hetong = dbContext.policy_tradeproject.FirstOrDefault(m => m.ID == id && m.username == LoginUser); if (model == null) { GoTo404(); } if (id != 0 && hetong == null) { GoTo404(); } string pdfurl = string.Empty; string filename = string.Empty; if (id == 0) { if (ischeck == 1) { //確認單 pdfurl = System.Web.HttpContext.Current.Server.MapPath("/files/policy/" + LoginUser + "/" + coinfigid ); filename = "check.pdf"; } else { //申請表 pdfurl = System.Web.HttpContext.Current.Server.MapPath("/files/policy/" + LoginUser + "/" + coinfigid ); filename = "info.pdf"; } } else { pdfurl = System.Web.HttpContext.Current.Server.MapPath("/files/policy/" + LoginUser + "/" + coinfigid ); filename= hetong._id.ToString() + ".pdf"; } DirectoryInfo mydir = new DirectoryInfo(pdfurl); string pdfSrc = string.Empty; foreach (FileSystemInfo fsi in mydir.GetFileSystemInfos()) { if (fsi is FileInfo) { FileInfo fi = (FileInfo)fsi; string x = System.IO.Path.GetDirectoryName(fi.FullName); string s = System.IO.Path.GetExtension(fi.FullName); if (fi.Name == filename) { pdfSrc = x + "\\" + fi.Name;//pdf路徑 ViewBag.title = fi.Name;//網頁標題 } } } FileStream fs = new FileStream(pdfSrc, FileMode.Open, FileAccess.Read); return File(fs, "application/pdf"); }
