springboot文件上传到服务器本地相对路径、
时间: 2025-06-22 12:40:22 浏览: 17
### 实现文件上传至服务器本地相对路径
为了实现在 Spring Boot 应用中将文件上传到服务器的本地相对路径,需遵循一系列开发步骤。首先,在 `pom.xml` 文件中引入必要的依赖项,如 `spring-boot-starter-web` 和其他支持组件[^3]。
```xml
<dependencies>
<!-- Other dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
接着,创建用于文件上传的前端页面。此页面应包含一个 HTML 表单,允许用户选择要上传的文件并提交请求。表单应当设定为 POST 方法,并指明编码类型为 multipart/form-data 以便处理二进制数据[^2]。
```html
<form method="POST" action="/uploadFile" enctype="multipart/form-data">
Select file to upload:
<input type="file" name="file"/>
<button type="submit">Upload</button>
</form>
```
随后,在控制器层定义相应的处理器方法来接收来自客户端的文件流。这里的关键在于利用 MultipartFile 参数获取上传的数据,并将其写入目标位置。对于存储路径的选择,可以采用相对于应用程序根目录的位置,比如 `"./uploads"` 或者通过配置属性灵活指定[^1]。
```java
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@RestController
public class FileUploadController {
private static String UPLOAD_DIR = "./uploads/";
@PostMapping("/uploadFile")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file){
try {
Path copyLocation = Paths.get(UPLOAD_DIR + file.getOriginalFilename());
Files.copy(file.getInputStream(), copyLocation);
return ResponseEntity.ok("You successfully uploaded " + file.getOriginalFilename() + "!");
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body("Failed to upload " + file.getOriginalFilename() + " => " + e.getMessage());
}
}
}
```
最后一步是在 application.properties 配置文件里调整一些默认行为,例如最大可接受的文件尺寸以及临时缓存区大小等参数:
```properties
# 设置全局最大的HTTP请求体大小,默认单位是字节(B),也可以使用K,M,G作为单位后缀表示KB,MB,GB.
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
# 如果希望自定义上传的目标文件夹而不是硬编码在代码内的话,可以在property里面声明变量再注入controller类中读取。
file.upload-dir=./uploads/
```
上述过程展示了完整的流程,从准备环境到最后部署上线前的各项准备工作都已涵盖其中。值得注意的是,实际生产环境中还需要考虑安全性措施,像防止恶意脚本攻击、病毒扫描等功能扩展;同时也建议定期清理不再使用的旧版本文件以节省磁盘空间资源。
阅读全文
相关推荐


















