springboot解决 jar包war包excel模板路径获取问题
public static void downExcel(HttpServletResponse res, HttpServletRequest req, String fileName) throws Exception{
ServletOutputStream out;
res.setContentType("multipart/form-data");
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html");
//getResource无法读取压缩文件里的路径,本地可以,打成jar包会报错
// String filePath = getClass().getResource("/static/excel/" + fileName).getPath();
Resource resource = new ClassPathResource("/static/excel/"+fileName);
String userAgent = req.getHeader("User-Agent");
if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else {
// 非IE浏览器的处理:
fileName = new String((fileName).getBytes("UTF-8"), "ISO-8859-1");
}
res.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
InputStream inputStream = resource.getInputStream();
out = res.getOutputStream();
int b = 0;
byte[] buffer = new byte[1024];
while ((b = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, b);
}
inputStream.close();
if (out != null) {
out.flush();
out.close();
}
}
原文地址链接https://blog.csdn.net/qq_32080243/article/details/109173913