文件下载
Posted lightbc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件下载相关的知识,希望对你有一定的参考价值。
1.文件下载后端代码
/** * 初始化下载页面 * * @return */ @RequestMapping(value = "/initDownloadPage", method = RequestMethod.GET) public String initDownloadPage(Model model) { File file = new File("D:/File");
// 获取文件列表 if (file.exists() && file.isDirectory()) { String[] files = file.list(); if (files.length > 0) { model.addAttribute("fileList", files); } else { System.out.print("空!"); } } else { System.out.print("路径不存在!"); } return "download"; } /** * 文件下载 * * @param fileName * @param response * @throws Exception */ @RequestMapping(value = "/downloadFile", method = RequestMethod.GET) public void downloadFile(@RequestParam("fileName") String fileName, HttpServletResponse response) throws Exception { // 如果文件名不为空,则进行下载 if (fileName != null) { //设置文件路径 String realPath = "D:/File/"; File file = new File(realPath, fileName); // 如果文件名存在,则进行下载 if (file.exists()) { // 配置响应头 response.setHeader("content-type", "application/octet-stream"); response.setContentType("application/octet-stream"); // 设置文件名 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); // 实现文件下载 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 { try { if (bis != null) { bis.close(); } if (fis != null) { fis.close(); } } catch (Exception e) { e.printStackTrace(); } } } } }
2.文件下载前端代码
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../static/jquery-3.4.1.js"></script> <script> function download(e) { var data =$(e).prev().text(); window.location.href = "/file/downloadFile?fileName="+data; } </script> </head> <body> <p th:each="file:${fileList}"> <a th:text="${file}" href="#"></a> <input type="button" value="下载" onclick="download(this)"> </p> </body> </html>
3.文件下载功能测试
4.下载成功。
以上是关于文件下载的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途