项目场景:
项目中需要实现将文件上传到本地指定的文件夹中
问题描述:
出现的问题:
虽然可以正常的上传文件,但是当文件大于10M的时候就会出现异常,信息如下:
org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException:
the request was rejected because its size (48215146) exceeds the configured maximum (10485760)]
上传文件的代码:
@Override
public String uploadFile(String filePath, MultipartFile file) {
File desFile = new File(filePath + file.getOriginalFilename());
if(!desFile.getParentFile().exists()){
desFile.getParentFile().mkdirs();
}
try {
file.transferTo(desFile);
} catch (Exception e) {
log.error("file upload fail!!! --> :{}", e.getMessage());
return null;
}
return file.getOriginalFilename();
}
解决方案:
通过修改MultipartConfigElement对象中的 MaxFileSize 的大小,从而实现对文件大小得修改@Configuration
public class FileCongfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件最大 100M
factory.setMaxFileSize(DataSize.of(100, DataUnit.MEGABYTES));
// 设置总上传数据总大小 100M
factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
return factory.createMultipartConfig();
}
}