推しミネラルウォーターはありますか?

ファイルのダウンロードを行うservletを作成しています。

ところが漢字を含むファイル名のファイルをダウンロードしようとすると、ファイルのダウンロードダイアログでファイル名が正しく表示されません。どうやったら正しく表示できるようになるでしょうか?皆様のお知恵をお貸しください。

レスポンスヘッダには以下の設定をしています。
res.setContentType("application/octet-stream; charset=Shift_JIS");
res.setHeader("Content-Disposition", "attachment; filename=" + filename);

filenameが"V003-0.pdf"の場合、ファイルのダウンロードダイアログで「ファイル名」は正しく表示され、「ファイルの種類」もAdobe Acrobat Documentとなりました。しかし"通達V003-0.pdf"というファイル名にしたら「ファイル名」は英数字に変わっており(さらに拡張子も表示されない)、「ファイルの種類」は表示されなくなってしまいました。

よろしくお願いいたします。

A 回答 (1件)

私はいつも



response.setHeader("Content-Disposition", "filename=" + URLEncoder.encode("あいうえお.csv", "UTF-8"));
response.setContentType("text/download");

としています。
    • good
    • 0
この回答へのお礼

Strutsさんお返事ありがとうございます。
上記の設定で試してみたところ、ファイルのダウンロードダイアログが表示されず、いきなりAdobe Readerが起動してしまいました。

そこでいくつか設定を変えて、最終的には以下の設定にしました。

res.setContentType("application/octet-stream; charset=Shift_JIS");
res.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));

これで日本語名のファイルも問題なくダウンロードできました!

とても助かりました。ありがとうございます。

お礼日時:2004/11/09 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報