SpringBoot文件上传并保存到resources目录下
时间: 2024-10-16 15:08:57 浏览: 85
Spring Boot 中可以方便地处理文件上传,并将其保存到 `resources` 目录下的某个指定位置。以下是一个基本的步骤:
1. 首先,你需要添加相应的依赖到你的 `pom.xml` 或者 `build.gradle` 文件中。对于 Maven,添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-spring</artifactId>
</dependency>
```
对于 Gradle,添加:
```gradle
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.dropwizard.metrics:metrics-spring'
```
2. 创建一个接收文件上传的控制器。例如:
```java
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
if (file.isEmpty()) {
return "error";
}
// 将文件移动到 resources 目录下,这里假设有一个名为 uploads 的子目录
String targetDir = "/uploads/";
String fileName = file.getOriginalFilename();
file.transferTo(new File(RESOURCE_DIR + targetDir, fileName));
return "success"; // 返回成功消息
}
}
```
注意这里的 `RESOURCE_DIR` 应该替换为你项目的实际资源路径,如果是在 Spring Boot 项目里,通常是 `classpath:/` 加上相对路径。
3. 为了防止直接访问资源文件,你可以配置一个静态资源处理器(如 Spring Security 或 WebFlux 自带的功能),限制对 `/uploads` 目录的访问。
4.
阅读全文