springboot 文件的上传下载
时间: 2023-10-14 09:56:58 浏览: 41
在 Spring Boot 中,实现文件的上传和下载非常简单。下面我将分别介绍如何实现文件的上传和下载。
文件上传:
1. 首先,确保你已经添加了 Spring Boot 的 Web 依赖。可以在 Maven 或 Gradle 中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 创建一个控制器类,用于处理文件上传的请求。可以使用 `@RestController` 注解使其成为一个 REST 风格的控制器。在控制器类中,创建一个处理文件上传请求的方法,并使用 `@PostMapping` 注解标记该方法为 POST 请求处理方法。
```java
@RestController
public class FileController {
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
// 处理文件上传逻辑
// ...
return "File uploaded successfully!";
}
}
```
3. 在上述方法中,使用 `@RequestParam` 注解获取文件参数,并将其类型声明为 `MultipartFile`。这样就可以接收客户端上传的文件了。
4. 处理文件上传逻辑的具体实现可以根据需求来编写。你可以使用 `file.getBytes()` 方法获取文件的字节数组,然后进行保存或其他操作。
文件下载:
1. 创建一个控制器类,用于处理文件下载的请求。同样可以使用 `@RestController` 注解使其成为一个 REST 风格的控制器。在控制器类中,创建一个处理文件下载请求的方法,并使用 `@GetMapping` 注解标记该方法为 GET 请求处理方法。
```java
@RestController
public class FileController {
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() {
// 处理文件下载逻辑
// ...
// 返回文件资源
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"filename.jpg\"")
.body(new ByteArrayResource(fileBytes));
}
}
```
2. 在上述方法中,可以根据需求编写文件下载逻辑。使用 `ResponseEntity` 类来返回文件资源。可以使用 `HttpHeaders.CONTENT_DISPOSITION` 头部指定下载时的文件名。
3. 在 `body` 方法中,创建一个 `ByteArrayResource` 对象,并将文件的字节数组传递给它。这样就可以将文件内容作为响应体返回给客户端。
这样,你就完成了在 Spring Boot 中实现文件的上传和下载操作。当然,这只是简单的示例,你可以根据具体需求进行扩展和优化。