1.配置文件:
pom.xml中添加依赖:
<!-- thymeleaf模版 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
application.yml文件中添加要下载的模板文件存放地址
添加读取配置的模板存放地址

2.前台代码
<a href="javascript:downTemple()" style="color:#1c99ef;text-decoration:underline;">下载模板</a>
function downTemple(){
window.location.href="/UserController/downTemple";
}
3.后台代码
@RequestMapping(value = "/downTemple")
public String downTemple(HttpServletResponse response, RedirectAttributes redirectAttributes) {
String fileName = "用户信息模板.xlsx";// 设置文件名,根据业务需要替换成要下载的文件名
if (fileName != null) {
//设置文件路径
String realPath = configProperties.getExcelTemplateDpwloadPath();//这里使用配置类配置文件路径
File file = new File(realPath , fileName);
if (file.exists()) {
try {
response.setContentType("application/force-download");// 设置强制下载不打开
fileName =java.net.URLDecoder.decode(fileName,"UTF-8");
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("GB2312"),"iso8859-1"));// 设置文件名 中文要编码后才可以
} catch (UnsupportedEncodingException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
return null;
}