※ ChatGPTを利用し、要約された質問です(原文:日本語名のファイルのダウンロード)
このQ&Aのポイント
漢字を含むファイル名のファイルをダウンロードする際に、ファイルのダウンロードダイアログで正しいファイル名が表示されない問題についての解決方法を教えてください。
ファイルのダウンロードを行うservletで、漢字を含むファイル名の場合に正しいファイル名が表示されない問題が発生しています。レスポンスヘッダの設定は正しく行われているようですが、どうすれば正しく表示させることができるでしょうか。
ファイルのダウンロードダイアログで漢字を含むファイル名が正しく表示されない問題についての解決方法を教えてください。
ファイルのダウンロードを行う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"というファイル名にしたら「ファイル名」は英数字に変わっており(さらに拡張子も表示されない)、「ファイルの種類」は表示されなくなってしまいました。
よろしくお願いいたします。
お礼
Strutsさんお返事ありがとうございます。 上記の設定で試してみたところ、ファイルのダウンロードダイアログが表示されず、いきなりAdobe Readerが起動してしまいました。 そこでいくつか設定を変えて、最終的には以下の設定にしました。 res.setContentType("application/octet-stream; charset=Shift_JIS"); res.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8")); これで日本語名のファイルも問題なくダウンロードできました! とても助かりました。ありがとうございます。