2011-07-06 9 views
0

Internet Explorerで他の種類のファイルをダウンロードして保存でき、FirefoxでPDF形式をダウンロードして保存できます。しかし、IE8では、私はPDFファイルをダウンロードすることはできません。私はwcfコードをチェックしました。ファイルストリームを返しています。すでに述べたように、.xlsxのような他の種類のファイルでも動作します。ここではIEでPDFを保存できません

私のフォームはここ

<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(のためのスクリプトですhtmlページ上にある)

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

Befopre WCFからのファイルストリームを返す、私は、このプロパティを設定します。 System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.ContentType = "アプリケーション/オクテットストリーム";

私も "application/pdf"に設定しようとしましたが、それは役に立ちません。

助けていただければ幸いです。

+0

どのようにあなたは 'それは動作しません' 意味ですか? Internet Explorerはファイルを保存する代わりにブラウザでpdfを読み込もうとしますか?あなたは他のマシンから試すことができますか? – Jay

+0

私が思い出したように、IEはAdobeプラグインで気まぐれになることがあります。 POSTをGETに変更してみるか、空のブラウザウィンドウを開いてから、window.locationを開いた後にPDF urlに設定しなければならないことがあります。 – sdcoder

+0

ロードしたり保存したりしません。私はWindows 7の64ビット仮想マシンで作業しています。そのIE8と私はその64ビットも考えています。投稿したコードはFirefoxで動作しますが、ChromeとWindowsでは失敗します。だから、もっと良い方法があります。私が使用しなければならない唯一のツール(設計要件)は、ajaxとWCFです。 また、.pdfファイルのURLはありません。これは、ユーザーがフォルダを閲覧し、ファイルを選択してからそのファイルをダウンロードできるイントラネットWebアプリケーションの一部です。 – edepperson

答えて

0

は解決策を見つけた: は、このヘッダ 追加のContentType = "/ X-未知のアプリケーション" 設定 "コンテンツの廃棄:添付ファイルを、ファイル名=ファイル名.ext;"以下

サンプルコード:

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