3
string filename = Server.UrlPathEncode(Path.GetFileName(_Filename)));
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + encodeURIComponent(filename) + "\"");

このようなコードを書きました..

すべてのブラウザで正常に動作しますが、Internet Explorer では [名前を付けて保存] をクリックすると正常に動作しますが、[開く] をクリックすると%20ファイル名が表示されます。

誰かがこの問題を克服する方法を教えてください

ファイル名が「New text Document.txt」であるとします。ダウンロード後にファイルを開くと、同じ名前が必要です。「New_text_Document.txt」として表示したくありません。

これを行う方法はありますか?

他のブラウザでは問題なく動作します。Internet Explorer でこの問題のみが発生しています。デフォルトでエンコードしない場合、ファイル名は「New_text_Document.txt」になります。

4

1 に答える 1

3

ファイル名にスペースが含まれている場合、それらはURLエンコードされます。エンコードされたスペース文字は実際には%20であり、ファイル名で確認できます。

これを回避するには、スペースを別の文字(たとえば)に置き換えるだけです_

Response.AddHeader("Content-Disposition", "attachment; filename=\"" + 
   encodeURIComponent(filename.Replace(" ", "_")) + 
"\"");
于 2012-06-22T08:48:28.490 に答える