SpringBoot的文件的上传和下载
时间: 2024-10-26 15:01:59 浏览: 10
Spring Boot 提供了方便的方式来处理文件的上传和下载,通常通过整合前端MVC框架(如Thymeleaf、Vue.js等)和后端Spring MVC来实现。以下是基本步骤:
**文件上传:**
1. 添加依赖:引入Spring WebMultipart或Spring Cloud Config Server Multipart依赖,支持multipart/form-data类型的表单数据提交。
2. 配置Multipart: 在application.properties或application.yml中设置最大上传大小(max-file-size)等限制。
3. 创建Controller: 使用`@RequestParam`接收上传文件,并将其保存到服务器目录(通常是`spring-boot-resource/static/uploadedFiles`)。
4. 完成业务逻辑:处理上传后的操作,例如数据库存储文件信息。
```java
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
// 检查文件是否有效,然后保存到本地
// 如果成功,返回响应或者存储路径
}
```
**文件下载:**
1. 在Controller中提供一个URL,该URL指向存储的文件。
2. 使用`@GetMapping`或`@RequestMapping`创建一个处理下载请求的方法,将文件路径转换为HttpServletResponse的`OutputStream`发送给客户端。
3. 可能需要设置Content-Disposition头,告诉浏览器如何预览或下载文件。
```java
@GetMapping("/download/{filename}")
public ResponseEntity<InputStreamResource> downloadFile(@PathVariable("filename") String filename) throws IOException {
File file = new File(UPLOAD_FOLDER + "/" + filename);
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + filename + "\"")
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(new InputStreamResource(new FileInputStream(file)));
}
```
阅读全文