Отправка файла в Spring Boot - PullRequest
2 голосов
/ 11 апреля 2019

Я создаю весеннее загрузочное приложение, которое отправляет файл в ответе тела, для этого я использую этот код:

FileSystemResource pdfFile = new FileSystemResource(outputFile);

return ResponseEntity
       .ok()
       .contentLength(pdfFile.contentLength())
       .contentType(MediaType.parseMediaType("application/pdf"))
       .body(new ByteArrayResource(IOUtils.toByteArray(pdfFile.getInputStream())));

Мне интересно, есть ли альтернативный способ отправки файла, кроме использования FileSystemResource?

Пожалуйста, если есть предложение, не стесняйтесь.

Спасибо!

1 Ответ

1 голос
/ 11 апреля 2019

Это упрощенная версия того, как я обычно это делаю, но она делает то же самое:

@RequestMapping(method = RequestMethod.GET, value = "/{id}")
public ResponseEntity<byte[]> getPdf(@PathVariable Long id) throws IOException {
    final String filePath = pdfFilePathFinder.find(id);

    final byte[] pdfBytes = Files.readAllBytes(Paths.get(filePath));

    final HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.parseMediaType("application/pdf"));
    headers.setContentDispositionFormData("attachment", null);
    headers.setCacheControl("no-cache");

    return new ResponseEntity<>(pdfBytes, headers, HttpStatus.OK);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...