/** * 下载导入应用模板 * * @return */ @ResponseBody @RequestMapping(method = RequestMethod.GET) public Response getApplicationTemplate(HttpServletRequest req, HttpServletResponse res) { try { //获取要下载的模板名称 String fileName = "ApplicationImportTemplate.xlsx"; //设置要下载的文件的名称 res.setHeader("Content-disposition", "attachment;fileName=" + fileName); //通知客服文件的MIME类型 res.setContentType("application/vnd.ms-excel;charset=UTF-8"); //获取文件的路径 String filePath = getClass().getResource("/template/" + fileName).getPath(); FileInputStream input = new FileInputStream(filePath); OutputStream out = res.getOutputStream(); byte[] b = new byte[2048]; int len; while ((len = input.read(b)) != -1) { out.write(b, 0, len); } //修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是" res.setHeader("Content-Length", String.valueOf(input.getChannel().size())); input.close(); return Response.ok("应用导入模板下载完成"); } catch (Exception ex) { log.error("getApplicationTemplate :", ex); return Response.ok("应用导入模板下载失败!"); } }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
需要下载文件位置:
![]()
如果在HttpServletResponse Header中不指定Content-Length,那么在下载完成打开后,会有如下提示:
![]()
【转载】https://blog.csdn.net/jiankunkin ... 798?utm_source=copy
|
|