解决Spingboot项目打成jar包之后,无法下载jar包里面的静态资源文件问题-下载excle
下载方法代码
/**
* 下载菜单模板
* @return
*/
@ResponseBody
@GetMapping("/DownloadTemplate")
@ApiOperation(value = "下载模板")
public void DownloadTemplate(HttpServletResponse response ) throws Exception {
FileInputStream fis = null;
ServletOutputStream sos = null;
try {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//设置响应头
//下载保存文件名
String fileName = "template.xlsx";
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
//项目中静态文件放的位置
fis = new FileInputStream(new ClassPathResource("static/excle/DownloadTemplateTree.xls").getFile());
sos = response.getOutputStream();
IOUtils.copy(inputStream, sos);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
fis.close();
}
if (sos != null) {
sos.flush();
sos.close();
}
}
}
文件存放的位置
需要修改的地方把
FileInputStream fis = new FileInputStream(new ClassPathResource("static/excle/DownloadTemplateTree.xls").getFile());
改成下面的就可以
InputStream fis = WordUtil.class.getClassLoader().getResourceAsStream("static/excle/DownloadTemplateTree.xls");
这样子就可以解决,下载jar包中的静态文件。
如果不修改的情况下,不能以jar包的形式来进行下载项目中的静态资源文件。