次の 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 では、「ファイルが破損しているため、修復できませんでした」と表示されます。
コンテンツ タイプは「application/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);
}