我有以下控制器来下载Excel文件。文件已经下载,但是当我打开它时,会出现“文件损坏,无法打开。”。在我的控制器中做错了什么?
@ApiOperation(value = "export ontology")
@RequestMapping(value = "/export/{ontologyId}", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> exportExcel(@PathVariable Long ontologyId) throws FileNotFoundException {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Description", "File Transfer");
headers.add("Content-Disposition", "attachment; filename=pfizer_polish_ontology.xlsx");
headers.add("Content-Transfer-Encoding", "binary");
headers.add("Connection", "Keep-Alive");
headers.setContentType(
MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
File file = new File("C:\\ttt\\pfizer_polish_ontology.xlsx");
InputStreamResource isr = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok().contentLength(file.length()).headers(headers).body(isr);
}
我想补充一个重要的细节 我正在使用Swagger接口来访问REST API。
使用POSTMAN(保存和下载)可以下载文件,一切正常。所以问题似乎只出现在使用Swagger接口时。