2011-07-06 113 views
0

我可以在Internet Explorer中下載和保存其他類型的文件,並且可以在Firefox中下載和保存pdf類型。但在IE8中,我無法下載PDF文件。我已經檢查過wcf代碼,它正在返回一個文件流,正如我已經提到的那樣,它可以用於其他類型的文件,比如.xlsx。無法在IE中保存pdf

這裏是我的html頁面

<div> 
    <form id="frmdownloadData" action="http://localhost:9433/NASWcf1/runDownloadFile" 
    method="post" enctype="multipart/form-data" target="_blank"> 
    <input type="hidden" id="UserId" name="UserId" value="****" /> 
    File Name: <input id="filename" name="filename" type="text" value=""/> 
    <br /> 
    App Code: <input id="appcode" name="appcode" type="text" value="Appcode_FileId" /> 
    </form> 
</div> 
<input type="button" id="submitdwnldfrm" onclick="dofileDownload()" /> 

這裏的形式是爲dofileDownload()

function dofileDownload() { 
     $('#frmdownloadData').ajaxSubmit(function() { 
      alert("Thank you for your comment!"); 
     }); 
    } 

Befopre從WCF返回文件流的劇本,我設置該屬性: System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.ContentType =「application/octet-stream」;

我也試着將它設置爲「application/pdf」,但它沒有幫助。

任何幫助,將不勝感激。

+0

你的意思是 '它不工作'? IE試圖在瀏覽器中加載PDF而不是保存文件?你可以嘗試從其他機器? – Jay

+0

如果我記得的話,IE可能會與Adobe插件古怪。嘗試將POST更改爲GET,或者有時我們必須打開空白瀏覽器窗口,然後在打開後將window.location設置爲PDF URL。 – sdcoder

+0

它不會加載它或嘗試保存它。我正在使用Windows 7,64位虛擬機。它的IE8和我認爲它也是64位。我發佈的代碼在Firefox中工作,但在Chrome和Windows中失敗。所以也許有更好的方法來做到這一點。我必須使用的唯一工具(設計要求)是ajax和WCF。 此外,.pdf文件沒有網址。這是Intranet Web應用程序的一部分,它允許用戶瀏覽文件夾,選擇文件然後下載該文件。 – edepperson

回答

0

找到了解決方案: 設置的ContentType = 「應用程序/ x-未知」 然後添加該標頭 「內容處置:附件;文件名= FILENAME.EXT;」

示例代碼如下:

System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.ContentType = "application/x-unknown"; 
       System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition: attachment; filename="+filename+";");