2017-07-14 74 views
3

我正在構建一個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:\ _項目\ MYAPP \ PDFHandler \下載\' 。

但是Sample.pdf文件在該文件夾中。我讀過這個文件以內聯方式打開,我們不需要提供文件名到File()方法。如果我將上述內容更改爲文件路徑和名稱,則錯誤消失,但它會在Chrome中再次提供Save對話框。

+1

但文件路徑應包含文件名,不應該嗎? – hardkoded

+0

@kblok,將其修改爲包含文件名,並且它還提供不是內聯下載的文件。 – Alex

+1

你可以嘗試強制頭文件的內容類型爲「application/pdf」,我知道File類應該這樣做,就像測試一樣。 – hardkoded

回答

2

我在本地測試了您的代碼,它按預期工作,您的PDF文件也是正確的。

但這是瀏覽器誰最後的話。這些步驟設置PDF預覽鉻:

  1. 在計算機上打開Chrome瀏覽器。
  2. 在右上角,點擊更多,然後點擊設置。
  3. 在底部,單擊高級。
  4. 在「隱私和安全」下,點擊內容設置。
  5. 靠近底部,點擊PDF文檔。
  6. 關閉使用其他應用程序打開PDF文件。

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

相關問題