一、文件上传配置
#是否开启文件上传支持,默认为true。
spring.servlet.multipart.enabled=true
#文件写入磁盘的阈值,默认为0。
spring.servlet.multipart.file-size-threshold=0
#上传文件的临时保存位置。
#spring.servlet.multipart.location=E:ltemp
# 配置单个文件最大上传大小
spring.servlet.multipart.max-file-size=10MB
# 配置单个请求最大上传大小(一次请求可以上传多个文件)
spring.servlet.multipart.max-request-size=100MB
#文件是否延迟解析,默认为false。
spring.servlet.multipart.resolve-lazily=false
二、单文件本地存储
文件上传必须是GET请求
public Result upload(String username, Integer age, MultipartFile image) throws Exception {
log.info("文件上传:{}, {}, {}", username, age, image);
// 将文件存储在服务器磁盘目录当中
String filename = image.getOriginalFilename(); // 获取文件名
String suffix = filename.substring(filename.lastIndexOf(".")); // 获取文件的后缀
String newFilename = UUID.randomUUID().toString() + suffix; // 新的文件名
String savePath = "D:\\repo\\javaweb\\project_web\\springboot-management\\src\\main\\resources\\static\\img\\";
image.transferTo(new File(savePath + newFilename));
return Result.success();
}
三、本地存储错误
SpringBoot默认上传文件的大小是1M,如果超出则会报错
解决方案,增加配置
# 配置单个文件最大上传大小
spring.servlet.multipart.max-file-size=10MB
# 配置单个请求最大上传大小(一次请求可以上传多个文件)
spring.servlet.multipart.max-request-size=100MB
三、多文件本地存储
public Result upload(String username, Integer age, MultipartFile[] images) throws Exception {
log.info("文件上传:{}, {}, {}", username, age, images);
for (MultipartFile image : images) {
// 将文件存储在服务器磁盘目录当中
String filename = image.getOriginalFilename(); // 获取文件名
String suffix = filename.substring(filename.lastIndexOf(".")); // 获取文件的后缀
String newFilename = UUID.randomUUID().toString() + suffix; // 新的文件名
String savePath = "D:\\repo\\javaweb\\project_web\\springboot-management\\src\\main\\resources\\static\\img\\";
image.transferTo(new File(savePath + newFilename));
}
return Result.success();
}