返回
Java SpringBoot实现本地上传文件到resources目录永久保存下载
后端
2023-12-09 07:22:43
使用 Java SpringBoot 实现本地文件上传
一、导言
在 Java 后端开发中,文件上传是一个不可或缺的功能。然而,在学习或测试阶段,将文件直接上传到第三方云服务(如阿里云 OSS)可能不够便捷。本地文件上传 为我们提供了一个更为简单易行的替代方案。
二、技术方案
利用 Java SpringBoot 框架,我们可以轻松实现本地文件上传。具体步骤如下:
1. 配置 pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
2. 创建 Controller
@RestController
@RequestMapping("/file")
public class FileController {
@Value("${spring.resources.static-locations}")
private String uploadPath;
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdirs();
}
String fileName = file.getOriginalFilename();
File saveFile = new File(uploadPath + fileName);
file.transferTo(saveFile);
return "文件上传成功!";
}
}
3. 配置 application.properties
spring.resources.static-locations=file:resources/
三、测试上传
启动项目,访问 "http://localhost:8080/file/upload",选择要上传的文件即可完成上传。上传的文件将保存在项目的 resources 目录下。
四、注意事项
- 确保已创建 resources 目录并配置好其路径。
- 文件上传路径可根据实际情况修改。
- 文件上传大小和类型可通过修改 multipart.max-file-size 和 multipart.max-request-size 等配置进行限制。
五、结语
利用 Java SpringBoot 实现本地文件上传,为学习和测试提供了极大的便利。虽然在正式项目中不建议直接上传文件到本地,但对于开发和测试来说,这是一个高效而实用的解决方案。
六、常见问题解答
-
如何修改上传文件路径?
- 在 FileController 的 upload() 方法中修改 uploadPath 即可。
-
如何限制文件大小?
- 在 application.properties 文件中配置 multipart.max-file-size 属性。
-
如何限制请求大小?
- 在 application.properties 文件中配置 multipart.max-request-size 属性。
-
上传文件时报 404 错误怎么办?
- 检查 resources 目录是否存在并已正确配置。
-
上传文件时报 413 错误怎么办?
- 检查 multipart.max-file-size 和 multipart.max-request-size 配置是否符合上传文件大小。