springboot图片上传
时间: 2023-06-11 19:06:19 浏览: 55
Spring Boot 中实现图片上传可以通过以下步骤:
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.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
```
2. 创建上传文件的 Controller,并添加 `@RestController` 注解:
```java
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
try {
// 获取上传文件的原始文件名
String fileName = file.getOriginalFilename();
// 获取上传文件的扩展名
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
// 生成新的文件名
String newFileName = UUID.randomUUID().toString() + "." + fileExt;
// 保存上传文件到指定目录
File destFile = new File("upload/" + newFileName);
FileUtils.copyInputStreamToFile(file.getInputStream(), destFile);
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
return "上传失败";
}
}
}
```
3. 添加配置类,指定上传文件的最大大小和临时文件存储路径:
```java
@Configuration
public class FileUploadConfig {
@Value("${file.upload.path}")
private String uploadPath;
@Value("${file.upload.maxSize}")
private long maxFileSize;
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
// 设置临时文件存储路径
factory.setLocation(uploadPath);
// 设置上传文件的最大大小
factory.setMaxFileSize(DataSize.ofBytes(maxFileSize));
return factory.createMultipartConfig();
}
}
```
4. 在 application.properties 文件中配置上传文件的最大大小和临时文件存储路径:
```properties
# 上传文件的最大大小,单位字节
file.upload.maxSize=10485760
# 临时文件存储路径
file.upload.path=upload/temp
```
这样就完成了 Spring Boot 中图片上传的实现。上传图片时,需要发送 POST 请求,参数名为 `file`,值为要上传的图片文件。