私のアプリはDBからファイルをダウンロードするとします。
コントローラ:
@GetMapping(value = "/download/{id}")
public ResponseEntity<Resource> downloadBook(@PathVariable Long id) {
Book book = bookService.findById(id);
return ResponseEntity.ok().contentType(MediaType.APPLICATION_PDF)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + book.getFileName() + ".pdf\"")
.body(new ByteArrayResource(book.getFile()));
}
これは、ブラウザーから直接呼び出すと機能します(ダウンロードポップアップ)が、私がしなければならないことは、ajax呼び出しで処理することです。これは今のところ私のajaxメソッドですが、このコードは実際には、ダウンロードのポップアップなしで成功を通知するだけです。
downloadBook : function(bookId) {
$.ajax({
url : basePath + '/book/download/' + bookId,
success : function() {
alert("success!");
},
error : function() {
alert("error!");
}
});
}
downloadBook : function(bookId) {
window.location = basePath + '/book/download/' + bookId
}
私のdownloadBookメソッドはこのようになり、問題が解決しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加