1、pom.xml
文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
2. 配置文件添加文件限制
# 设置最大文件大小
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
3. 创建文件上传 Controller,做文件上传处理
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.http.ResponseEntity;
import java.io.File;
import java.io.IOException;
@RestController
@RequestMapping("/api/upload")
public class FileUploadController {
// 指定文件上传目录
private static final String UPLOAD_DIR = "C:/uploads/";
@PostMapping
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
// 检查是否选择了文件
if (file.isEmpty()) {
return ResponseEntity.badRequest().body("请上传一个文件");
}
try {
// 确保目标目录存在
File targetDir = new File(UPLOAD_DIR);
if (!targetDir.exists()) {
targetDir.mkdirs(); // 创建目录
}
// 保存文件
File destFile = new File(targetDir, file.getOriginalFilename());
file.transferTo(destFile);
return ResponseEntity.ok("文件上传成功: " + destFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.status(500).body("文件上传失败: " + e.getMessage());
}
}
}
4. 前端创建上传界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件上传</title>
</head>
<body>
<h1>文件上传</h1>
<form action="/api/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" required />
<button type="submit">上传</button>
</form>
</body>
</html>
5、自行测试即可