显示文件内联抛出'无法找到路径的一部分'

时间:2017-07-14 16:26:43

标签: c# asp.net-mvc google-chrome

我正在构建一个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中再次提供“保存”对话框。

1 个答案:

答案 0 :(得分:2)

我在本地测试了您的代码并且它按预期工作,您的PDF文件也是正确的。

但这是浏览器的最后一句话。这些是在chrome中设置PDF预览的步骤:

  
      
  1. 在您的计算机上,打开Chrome。
  2.   
  3. 点击右上角的“更多”,然后点击“设置”。
  4.   
  5. 在底部,单击“高级”。
  6.   
  7. 在“隐私和安全”下,点击“内容设置”。
  8.   
  9. 在底部附近,点击PDF文档。
  10.   
  11. 使用其他应用程序关闭“打开PDF”。
  12.   

来源:https://support.google.com/chrome/answer/6213030?hl=en