SpringBootd的文件下载
2021/10/21 23:11:40
本文主要是介绍SpringBootd的文件下载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SpringBoot的文件下载
关于文件上传和下载,其实都挺简单的。pom文件主要的如下。(这里这个fileupload可以不下,可以自己选择写其他的方法下载,不一定参考我的,我的是Spring MVC通过阿帕奇Commons FileUpload技术实现的一个实现类,所以才需要依赖这个组件)
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
我这里写的下载是先从自己的存储下载文件里查出有多少文件并且显示在前端页面。
下载文件点此处
控制层代码: //下载页面展示
@RequestMapping("/showDownLoad")
public String showDownLoad(HttpServletRequest request, Model model){
String path = “E:\Web\UploadDownLoad”;
//request.getServletContext().getRealPath("/upload333");
File fileDir = new File(path);
File filesList[] = fileDir.listFiles();
System.out.println(path);
model.addAttribute(“filesList”,filesList);
model.addAttribute(“hanhan”,“123456”);
return “downLoad”;
} //下载 @GetMapping("/downLoad") public ResponseEntity<byte[]> downloadFile(HttpServletRequest request, @RequestParam("filename") String filename)throws IOException { //@RequestHeader("User - Agent") String userAgent String path = "E:\\Web\\UploadDownLoad"; //request.getServletContext().getRealPath("/upload333"); File downFile = new File(path + File.separator + filename); ResponseEntity.BodyBuilder builder = ResponseEntity.ok(); builder.contentLength(downFile.length()); builder.contentType(MediaType.APPLICATION_OCTET_STREAM); filename = URLEncoder.encode(filename,"UTF-8");
// !!!! 本来是想使用UA进行使用浏览器区别对待的,一直报错,400,我暂时也不知道前端怎么传,那就暂且把这个问题放一边叭
// if(userAgent.indexOf(“MSIE”)>0){
// builder.header(“Content-Disposition”,“attachment;filename=”+filename);
//
// }else{
// builder.header(“Content-Disposition”,“attachment;filename*=UTF-8’’”+filename);
// }
return builder.body(FileUtils.readFileToByteArray(downFile));
}
前端html代码如下:这里是接收控制层的参数并以视图显示出来。
<span th:text="${fileStat.count}"></span> </td> <td> <a th:href="@{downLoad(filename = ${file.name})}"> <span th:text="${file.name}"></span> </a> </td> </tr> </tbody> </table> </div> 然后效果如下,点击链接即可下载至本地。 ![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=e95ab41404404e3f86f5fd9f0305e049.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfNDI3MzgzODc=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
这篇关于SpringBootd的文件下载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南