springboot如何做上传
时间: 2023-07-18 17:11:38 浏览: 82
SpringBoot实现文件上传接口
Spring Boot提供了多种方式来实现文件上传,其中比较常用的方式是使用Spring MVC的MultipartResolver接口。下面是一个基本的文件上传示例:
1. 添加依赖
在项目的pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
```
2. 配置MultipartResolver
在Spring Boot的配置类中添加以下代码:
```java
@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("UTF-8");
resolver.setMaxUploadSizePerFile(1024 * 1024 * 10); // 限制上传文件大小
return resolver;
}
```
3. 编写处理上传文件的Controller
```java
@RestController
public class UploadController {
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
// 获取上传文件的原始文件名
String originalFilename = file.getOriginalFilename();
// 获取上传文件的后缀
String extension = FilenameUtils.getExtension(originalFilename);
// 生成新的文件名
String newFilename = UUID.randomUUID().toString() + "." + extension;
// 创建保存文件的目录
String savePath = "/data/upload/";
File saveDir = new File(savePath);
if (!saveDir.exists()) {
saveDir.mkdirs();
}
// 保存上传文件
File saveFile = new File(saveDir, newFilename);
file.transferTo(saveFile);
return "上传成功";
}
}
```
在上面的示例中,我们通过@RequestParam注解获取上传的文件,然后使用FileUtils工具类保存上传文件到指定的目录中。
注意:在处理文件上传时,需要注意文件大小限制、文件名的生成、文件的保存路径等问题。
阅读全文