Java setContentTypeとsetHeaderメソッドでファイルをダウンロードさせるサンプル
環境
JavaSE 1.8
Eclipse 4.14.0
説明
1.コンテンツタイプをapplication/octet-streamにする
response.setContentType(“application/octet-stream");
2.Content-Dispositionヘッダーの値をattachmentにする
response.setHeader(“Content-Disposition","attachment");
3.filaname*の二重引用符を利用する
response.setHeader("Content-Disposition", "attachment; filename*=utf-8''" + ファイル名);
使用例
// 「¥ / : * ? " < > |」 を含むファイル名をエンコードする String fileName = URLEncoder.encode("ダウンロードファイル名","UTF-8"); // コンテンツタイプ名の設定 response.setContentType("application/octet-stream; charset=Shift_JIS"); //ヘッダー名の設定 Content-Dispositionヘッダーの値をattachmentにする response.setHeader("Content-Disposition", "attachment; filename*=utf-8''" + fileName);