我在资源文件夹(src / main / resources)中有一个XLSM文件(Excel工作表文件)。 我正在使用InputStream获取文件,并在RestAPI中给出响应。但是我无法从响应中获取文件。该文件已损坏。我在下面的代码中做错什么了。
@GetMapping("/downloadTemplate")
public ResponseEntity<?> downloadTemplate() throws IOException {
String fn = "filename" ;
try {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fn);
return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE)
.header(HttpHeaders.CONTENT_TYPE, "application/xlsx")
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fn)
.body(IOUtils.toByteArray(inputStream));
} catch (Exception e) {
log.error("An error occurred while trying to downloadTemplate: {}", e);
throw new ApiException(ApiErrorCode.DEFAULT_410, "Error while downloading");
}
}
我认为内容类型(HttpHeaders.CONTENT_TYPE,“ application / xlsx”)有问题
注意:(XLSX)格式应该可以使用。