我正在构建一个ASP.NET MVC 4应用程序,该应用程序需要允许用户在Chrome中在浏览器中显示内联PDF(不提供下载)。到目前为止,我使用了以下答案来帮助我构建它:
这是我的控制器中的动作:
public ActionResult DownloadPdf()
{
var mimeType = "application/pdf";
var filepath = Server.MapPath(Url.Content("~/downloads/"));
var filename = "Sample.pdf";
Response.Headers.Remove("Content-Disposition");
Response.AppendHeader("Content-Disposition", "inline; filename=" + filename);
return File(filepath, mimeType);
}
这里是调用JavaScript来打开一个内联文件的新窗口:
function downloadPdf() {
var path = '@Url.Action("DownloadPdf")';
window.open(path, '_blank');
}
使用上述代码,Chrome中会打开一个新窗口(选项卡),但例外情况为:
无法找到路径'C:\ _ Projects \ myapp \ PDFHandler \ downloads \'的一部分。
但是文件Sample.pdf在该文件夹中。我读到要内联打开文件,我们不需要为File()
方法提供文件名。如果我将上述内容更改为文件路径和名称,则错误会消失,但它会在Chrome中再次提供“保存”对话框。
答案 0 :(得分:2)
我在本地测试了您的代码并且它按预期工作,您的PDF文件也是正确的。
但这是浏览器的最后一句话。这些是在chrome中设置PDF预览的步骤:
- 在您的计算机上,打开Chrome。
- 点击右上角的“更多”,然后点击“设置”。
- 在底部,单击“高级”。
- 在“隐私和安全”下,点击“内容设置”。
- 在底部附近,点击PDF文档。
- 使用其他应用程序关闭“打开PDF”。
醇>