Sobes.tech
Назад к вопросам
Junior — Middle
63

Как осуществить отправку файла клиенту в приложении, использующем Spring MVC?

Ответ от нейросети

sobes.tech AI

В Spring MVC для отправки файла клиенту обычно используют объект ResponseEntity с указанием типа содержимого и потока файла.

Пример контроллера, который отправляет файл:

@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
    Path path = Paths.get("path/to/file.pdf");
    Resource resource = new UrlResource(path.toUri());

    if (!resource.exists()) {
        return ResponseEntity.notFound().build();
    }

    return ResponseEntity.ok()
            .contentType(MediaType.APPLICATION_PDF)
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=example.pdf")
            .body(resource);
}

Здесь:

  • Resource представляет файл.
  • Заголовок Content-Disposition указывает браузеру, что файл нужно скачать с указанным именем.
  • contentType задаёт MIME-тип файла.

Таким образом, клиент получит файл в ответ на HTTP-запрос.