@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ダウンロードファイルの半角スペースについて

1
投稿者投稿内容
Gottu
会議室デビュー日: 2006/02/19
投稿数: 12
投稿日時: 2008-02-01 19:27
いつも参考にさせて頂いております。
この件については様々な書き込みがありますが、同内容のものが発見できなかった為、
質問させて下さい。

ASP2.0/C#/IIS6.0でファイル名に英数字、ハイフン、スペースのみを使用しているZIPファイルを、サーバからクライアントへダウンロードさせるWEBアプリを開発しております。

ファイル名に日本語がありませんので、文字化けについて意識せず

Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment;
 filename="1- 2 334.zip");
Response.ContentType = "application/x-zip-compressed";

Response.TransmitFile("1- 2 334.zip");
Response.End();

としています。

実行するとダウンロードダイヤログが立ち上がり、IE6.0ではスペース込みのファイル名でダウンロードできるのですが、IE7.0だと何故かスペースがアンダーバーに置換されてしまいます。

IE6.0:"1- 2 334.zip"
IE7.0:"1-__2___334.zip"

IE7.0でもスペースのままダウンロードできる方法はありませんでしょうか。
ご教授のほど、よろしくお願い致します。
hebikuzure
ベテラン
会議室デビュー日: 2006/03/11
投稿数: 56
投稿日時: 2008-02-03 18:04
スペースを %20 のようにエンコードしたらどうでしょう。
Gottu
会議室デビュー日: 2006/02/19
投稿数: 12
投稿日時: 2008-02-04 12:04
末端技術者A様
ご指摘ありがとうございます。

>スペースを %20 のようにエンコードしたらどうでしょう。

これは、HttpUtility.UrlEncode()の事でしょうか?(違ったらすいません、、)
その場合、半角スペースが"+"に変換されてしまいます。
さらにその後に"+"を" "に置換してみたのですが、ダウンロードダイヤログでは
アンダーバーに置換されてしまいます。

やり方が間違っているのでしょうか?


burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-02-04 14:33
ASP.NETにて画像ファイル取得時にファイル名にスペースがあると取得できない - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23133&forum=7
52
会議室デビュー日: 2006/08/18
投稿数: 6
投稿日時: 2008-02-04 18:07
burton999様

ご紹介ありがとうございます。
初歩的で大変お恥ずかしいのですが、きくちゃん様が書いていらっしゃる
関数の第2引数は何を入れたらよいのでしょうか?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-02-04 22:29
引用:

52さんの書き込み (2008-02-04 18:07) より:
burton999様

ご紹介ありがとうございます。
初歩的で大変お恥ずかしいのですが、きくちゃん様が書いていらっしゃる
関数の第2引数は何を入れたらよいのでしょうか?




ソースコードを理解しないでコピペして使うのはオススメできません。
Gottu
会議室デビュー日: 2006/02/19
投稿数: 12
投稿日時: 2008-02-05 13:20
burton999様

ご指摘ごもっともです。
勉強不足でした。

ただ、どのような方法を使ったとしても

Response.AppendHeader("Content-Disposition", "attachment;
filename="1- 2 334.zip");

の状態では半角スペースである限り、対応策は無いような気がしてきました。。

1

スキルアップ/キャリアアップ(JOB@IT)