我有以下 ActionResult:
[Authorize]
public ActionResult DownloadFile(Guid id)
{
AdjusterFile file = (from f in db.AdjusterFiles
join a in db.Adjusters
on f.adjusterID equals a.id
join u in db.Users
on a.userID equals u.id
where u.username == HttpContext.User.Identity.Name
&& f.id == id
select f)
.FirstOrDefault();
return new FileContentResult(file.fileContent.ToArray(), file.fileContentType);
}
它非常适用于 word 文档 (DOC/DOCX)。但是,每当我尝试下载由同一进程上传的 PDF 时,它会在 Chrome 中显示“无法加载 PDF 文档”。在 IE 中显示“文件已损坏,无法修复”。
内容类型是“应用程序/pdf”。
如何在 MVC 中下载 PDF?
相关文件上传代码:
using (MemoryStream ms = new MemoryStream())
{
file.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
AdjusterFile newFile = new AdjusterFile();
newFile.id = Guid.NewGuid();
newFile.adjusterID = adj.id;
newFile.type = "eo";
newFile.fileName = file.FileName;
newFile.fileContent = array;
newFile.fileContentType = file.ContentType;
db.AdjusterFiles.InsertOnSubmit(newFile);
}