SpringBoot+thymeleaf实现模板文件下载
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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律