У меня есть ссылка для скачивания на моей странице, но она не работает и выдает ошибку.
Вот мой код.
отображение запроса:
@RequestMapping(value="/{id}/download", method=RequestMethod.GET)
public ResponseEntity<Resource> downloadFile(@PathVariable Integer id) {
// Load file from database
MsFile file = null;
MsAnnouncement ano = null;
try {
ano = anRepo.findById(id).get();
file = fileService.getFile(ano.getFileId().getId());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(file.getFileType()))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getAttachedFileName() + "\"")
.body(new ByteArrayResource(file.getAttachedFile()));
}
HTML:
<a class=" mx-1 btn btn-secondary" th:href="@{/admin/announcement/{id}/download/(id=${announcement.id})}"
>Download</a>
Мне просто нужно скачать файл один раз, когда я нажму кнопку. Но когда я пытаюсь с этим кодом, файл не может быть загружен и получить сообщение об ошибке ResponseEntity.ok ():
ошибка следующая:
AnnouncementController.downloadFile(AnnouncementController.java:130) ~[classes/:na]
В Java: 130:
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(file.getFileType()))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getAttachedFileName() + "\"")
.body(new ByteArrayResource(file.getAttachedFile()));
}