springboot文件上传和下载详细的用法
时间: 2024-05-07 20:22:52 浏览: 15
Spring Boot 提供了方便的方式来处理文件上传和下载。下面我们来详细了解一下它的用法。
## 文件上传
### 1. 添加依赖
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.5</version>
</dependency>
```
### 2. 配置文件上传限制
在配置文件中增加以下配置:
```yaml
spring:
servlet:
multipart:
max-file-size: 10MB # 最大文件大小
max-request-size: 20MB # 最大请求大小
```
### 3. 创建文件上传接口
创建一个文件上传的接口,代码如下:
```java
@RestController
public class FileUploadController {
private static final Logger logger = LoggerFactory.getLogger(FileUploadController.class);
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
try {
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件内容
byte[] content = file.getBytes();
// 处理文件内容
// ...
return "上传成功!";
} catch (IOException e) {
logger.error("文件上传失败!", e);
}
return "上传失败!";
}
}
```
### 4. 测试文件上传
使用 Postman 等工具测试文件上传接口即可。
## 文件下载
### 1. 添加依赖
同文件上传。
### 2. 创建文件下载接口
创建一个文件下载的接口,代码如下:
```java
@RestController
public class FileDownloadController {
private static final Logger logger = LoggerFactory.getLogger(FileDownloadController.class);
@GetMapping("/download")
public void downloadFile(HttpServletResponse response) {
try {
// 获取文件路径
String filePath = "file.txt";
// 获取文件内容
byte[] content = Files.readAllBytes(Paths.get(filePath));
// 设置响应头
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment; filename=file.txt");
// 写出文件内容
OutputStream outputStream = response.getOutputStream();
outputStream.write(content);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
logger.error("文件下载失败!", e);
}
}
}
```
### 3. 测试文件下载
使用浏览器访问文件下载接口即可下载文件。