ユーザーが XML ファイルをダウンロードできるようにする webapp があります。Spring の Response エンティティを使用して、生成されたファイルを返します。
Firefox と Chrome で問題なく動作し、ユーザーにファイルを保存するように直接促します。右クリックして「ダウンロード」でも機能します。ただし、IE では、ブラウザーで XML を開きます。それでも、ファイルをダウンロードできません。まず第一に、ファイル名を完全に無視するため、「baseURL/download?id=xx」をダウンロードするプロンプトが表示され、.html のダウンロードが促され、ダウンロードすることさえできません:「ファイルをダウンロードできませんでした」。
これが私の方法のようです。そして、コメントで試したいくつかのこと...
@RequestMapping
public ResponseEntity<Classification> handle(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
Classification xmlToDownload = null;
HttpHeaders responseHeaders = new HttpHeaders();
// responseHeaders.setContentType(MediaType.APPLICATION_XML);
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// responseHeaders.set("Content-Type", "application/xml");
responseHeaders.set("Content-Disposition", "attachment;filename=\"Classification.xml\" ");
// responseHeaders.setContentDispositionFormData("filename", "Classification.xml");
responseHeaders.setCacheControl("public");
responseHeaders.setPragma("public");
xmlToDownload = classificationsService.getClassificationById(Long.valueOf(classificationId));
}
return new ResponseEntity<Classification>(xmlToDownload, responseHeaders, HttpStatus.CREATED);
ヘッダーに何か問題がありますか?