本地存储
运行环境:SpringBoot 3.2.5
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
姓名: <input type="text" name="username"><br>
年龄: <input type="text" name="age"><br>
头像: <input type="file" name="image"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
将代码放入地址为“src\main\resources\static\upload.html”的文件里。
JAVA代码
@Slf4j
@RestController
public class UploadController {
@PostMapping("/upload")
public Result upload(String username , Integer age , MultipartFile image) throws IOException {
log.info("文件上传: {},{},{}",username,age,image);
//生成随机文件名
String fileName = UUID.randomUUID().toString();
//获取原始文件后缀
String OriginalFilename = image.getOriginalFilename();
int index = OriginalFilename.lastIndexOf(".");
String suffix = OriginalFilename.substring(index);
//存储文件
image.transferTo(new File("D:\\"+fileName+suffix));
return Result.success();
}
}
将代码放入地址为“src\main\java\UploadController.java”的文件里。
启动项目
运行Springboot程序,在浏览器输入localhost:8080/upload.html访问页面。
选择文件并提交表单,此时D盘目录下会出现上传的文件。
配置信息
//单次上传文件最大容量
spring.servlet.multipart.max-file-size=50MB
//单次传输多个文件最大容量
spring.servlet.multipart.max-request-size=100MB
默认上传最大文件是1MB,如果上传的文件超过1MB会报错。
可以在application.properties文件里指定单次文件上传最大是多少。