2016-03-23 52 views
4

我使用aspx頁面在API中以內聯方式顯示PDF。IE內容處理內聯文件名問題

同時節約使用Chrome/Firefox中的PDF格式,需要從
header("Content-Disposition", "inline;filename=xyz.pdf")

的文件名,但在使用IE瀏覽器保存的PDF不讀取
header("Content-Disposition", "inline;filename=xyz.pdf")文件名。而是使用aspx名稱。

技術細節

我有一個xyz.aspx頁。 xyz.aspx頁面將調用文檔的API。 然後從API下載的文件將傳輸到瀏覽器與內聯顯示PDF文件。 正如下面設置響應標題並寫入文件字節。

  HttpContext.Current.Response.ClearHeaders(); 

      Response.AddHeader("Content-Disposition", "inline;filename=\"" + Name + "\""); 

      HttpContext.Current.Response.ContentType = "application/pdf"; 
  • 問題:

    雖然保存在IE中打開PDF就需要xyz.aspx而不是從頭名。

  • 要求:

    在使用IE瀏覽器保存的PDF,它需要保存PDF的名稱。

我GOOGLE了很多,因爲每個人都告訴它的IE行爲。我希望有人知道一個解決方案。

注意:我必須在瀏覽器中顯示pdf,然後保存。不要使用「附件」下載

在此先感謝。

回答

5

確實有些IE是不能處理("Content-Disposition", "inline;filename=...")

這是因爲filename=...最初打算爲附件配置。並非所有基於瀏覽器的PDF查看器都可以處理它。

我看到的唯一解決方案是允許通過不同的URL訪問。 假設你有一條到pdf的路線,例如:/pdf/view。如果將其更改爲/pdf/view/filename,並且您將應用程序配置爲以與/pdf/view相同的方式處理此路由,則會解決您的問題。

您也可以在網頁服務器上重新編寫下載網址。 取決於你的網絡服務器,你有多種方式來做到這一點。