В Spring реализован контроллер, который записывает содержимое в файл pdf (через поток ввода) в ServletOutputStream
, однако при сравнении содержимого существующего файла и загруженного файла он выглядит поврежденным.
public class DownloadFileController {
@GetMapping(value = "v0/file")
@ResponseBody
public void downloadFile(HttpServletResponse response) {
try (ServletOutputStream outputStream = response.getOutputStream();
InputStream inputStream = getFile()) {
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"example.pdf\"");
IOUtils.copy(inputStream, outputStream);
} catch (IOException ex) {
throw ...
}
}
private static InputStream getFile() {
return DownloadFileController.class.getResourceAsStream("/example.pdf");
}
}
HTTP-запрос успешен и отвечает содержимым PDF, однако он помечен следующим образом: �
Редактировать: Файл не всегдабыть PDF, это также могут быть изображения, текстовые документы и т. д.