2016-12-15 140 views
0

我有一個MVC控制器,將通過ajax調用將base64 pdf字符串發送回客戶端。如何在IE上強制下載pdf?

以下行將在單獨的Chrome和FF窗口中顯示PDF。

<a href=data:application/pdf;base64," + data.PDFResult + " download title='Download pdf document' /> 

這將無法在IE瀏覽器中工作,並且從我看到的內容看起來並不支持。

所以。而不是在新窗口中顯示PDF如何讓用戶下載PDF?

UPDATE:

  • 試圖通過AJAX發送字節[]返回到客戶端...

我改變JS到:

var pdfWin = window.open("data:application/octet-stream, " + escape(data), '', 'height=650,width=840'); 

和我的控制器:

[HttpPost] 
     public byte[] GetPDFc(MyObject myData) 
     { 
      var pdfBytes = MethodToGetPDF(myData); 
      return (pdfBytes); 
     } 
+0

不,我在調試時遇到訪問被拒絕的情況。 – PrivateJoker

回答

1

http://caniuse.com/#feat=download

- 10 IE does not support download attribute

使用應用程序/八位字節流與文件名

Force PDF download 'only' in Internet Explorer


下載屬性應該在邊緣瀏覽器中工作,而不是服務於從服務器上的文件

enter image description here

+0

我們使用的IE11不是邊緣。如果我能避免它,我寧願不要存儲PDF。 – PrivateJoker

+0

那麼答案是不可能的 – mplungjan

+0

是否有可能只是發回byte []而不是?在我的情況下,我寧願不將文檔保存到磁盤,只是爲了讓用戶查看/下載。我將擁有很多不同文檔的高流量,我不希望必須管理刪除所有這些副本。 – PrivateJoker