SpringBoot中如何实现文件的上传下载功能

您所在的位置:网站首页 文件上传如何实现 SpringBoot中如何实现文件的上传下载功能

SpringBoot中如何实现文件的上传下载功能

2023-05-27 02:50| 来源: 网络整理| 查看: 265

前言:

文件的上传下载是我们开发系统中非常常见的一种功能。对于很多JAVA初学者来说可能还不知道该怎么做文件的上传,下载功能,今天我们就用一个简单的文件上传下载功能展示一下文件上传下载的基本实现过程。

依赖包

1.5 2.11.0 commons-fileupload commons-fileupload ${commons-fileupload.version} commons-io commons-io ${commons-io.version} 配置文件 spring: # 请求响应 servlet: # 文件上传 multipart: # 单个文件上传的最大大小 max-file-size: 50MB # 多个文件上传的最大总大小 max-request-size: 50MB 控制类 package wxw.mengyuan.demo.fileupload; import org.springframework.core.io.InputStreamResource; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; /** * 文件上传/下载控制类 */ @ RestController@ RequestMapping(value = "/fileUpDown") public class FileUpDownController { /** * 文件上传 * @param myFile 对应表单中上传的input的name值 */ @ RequestMapping("/fileUpload")@ ResponseBody public String fileUpload(MultipartFile myFile) throws IOException { // 上传文件的名称 System.out.println(myFile.getOriginalFilename()); // 上传文件的大小 System.out.println(myFile.getSize()); // 保存上传文件 myFile.transferTo(new File("D:\\个人学习资料库\\照片验证22.jpg")); return "上传成功"; } /** * 文件下载 */ @ RequestMapping("/fileDownload") public ResponseEntity < InputStreamResource > fileDownload() throws IOException { // 读取文件 InputStreamResource isr = new InputStreamResource(new FileInputStream("D:\\idf_web_client.zip")); // 返回文件名称 String resultFileName = URLEncoder.encode("娃哈哈.zip", "UTF-8"); // 创建返回对象 ResponseEntity.BodyBuilder builder = ResponseEntity.ok(); // 设置返回结果媒体类型的响应头 builder.contentType(MediaType.APPLICATION_OCTET_STREAM); // 允许前端读取指定请求头的信息 builder.header("Access-Control-Expose-Headers", "Content-Disposition"); // 设置返回文件的名称 builder.header("Content-Disposition", "attachment; filename=" + resultFileName); // 将结果返回给前端 return builder.body(isr); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3