Я пишу API get для получения файла листа Excel, хранящегося в src / main / resources.
InputStream содержит содержимое файла Excel (формат xlsm).Но ответ содержит поврежденные данные.
@GetMapping("/downloadTemplate")
public ResponseEntity<?> downloadTemplate() throws IOException {
String fn = "filename";
try {
File file = new File(getClass().getClassLoader().getResource(fn).getFile());
InputStreamSource iss = new FileSystemResource(file);
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename= SimpleStandardTemplate.xlsm")
.body(IOUtils.toByteArray(iss.getInputStream()));
} catch (Exception e) {
log.error("An error occurred while trying to downloadTemplate: {}", e);
throw new ApiException(ApiErrorCode.DEFAULT_410, "Error while downloading");
}
}
Похоже, что в этой строке есть проблема "body (IOUtils.toByteArray (iss.getInputStream ()));",Есть ли альтернативный способ?Иначе, в чем может быть проблема?
Редактировать: Я думаю, что проблема с длиной контента.