我有一个下载按钮和一个查看按钮。通过返回FileResult的MVC控制器功能下载文件。
控制器功能如下:
public FileResult DownloadStatement(Guid statementID) {
StatementFileModel statementFile = BL.GetStatementByID(statementID);
byte[] fileBytes = statementFile.FileData;
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=" + statementFile.FileName);
Response.BinaryWrite(fileBytes);
return File(fileBytes, "application/pdf");
}
以下内容非常适合立即下载PDF而无需在浏览器中打开它:
window.location.href = "/DownloadStatement?statementID=" + statementID;
我在使用“查看”按钮时遇到了麻烦。我尝试了以下方法,但是它也只是下载PDF而没有在浏览器中打开它:
window.open("/DownloadStatement?statementID=" + statementID, '_blank', 'fullscreen=yes');
答案 0 :(得分:4)
Content-Disposition: attachment
标头告诉浏览器下载文件。单击“查看”按钮时,请勿发送该标头值(attachment
),并且浏览器应显示PDF而不是下载它。
完全省略标题或发送Content-Disposition: inline
就足够了。
答案 1 :(得分:1)
使用
header("Content-Disposition", "attachment; filename=" + statementFile.FileName)
供下载;
使用
header("Content-Disposition", "inline; filename=" + statementFile.FileName);
以在浏览器中将其打开: