【发布时间】:2017-05-17 14:46:15
【问题描述】:
我正在尝试通过 Spring REST 控制器下载文件。下面是我的代码 -
@RequestMapping(value="/aaa",method=RequestMethod.GET,produces=MediaType.APPLICATION_OCTATE_STREAM_VALUE)
public ResponseEntity<byte[]> testMethod(@RequestParam("test") String test) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentDispositionFromData("attachment","testExcel.xlsx");
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
File file = new File("C:\\testExcel.xlsx");
Path path = Paths.get(file.getAbsolutePath());
ByteArrayResource resource = new ByteArrayResource(Files.readAllbytes(path));
return new ResposeEntity<byte[]>(resource.getByteArray(),responseHeaders,HttpStatus.OK);
}
这在按钮点击中被调用。单击按钮后,没有任何反应。在调试这个 java 时,我可以看到字节流。在 Mozilla 的开发人员工具中,我可以看到成功的 HTTP 响应(该 excel 文件的字节流中的响应)。根据互联网上可用的资源,浏览器应该会自动下载文件,但这并没有发生。
为什么没有在浏览器中进行下载?我还需要做什么才能让它发挥作用?
注意:这仅用于 POC 目的。实际上,我必须通过 Apache POI 或其他一些 API 从数据库详细信息中生成 excel 文件。
【问题讨论】:
标签: excel spring rest controller download