其实这里涉及一个上传文件大小的限制,这个我等会再说
话不多说,咱们直接上Demo 就从控制层开始吧
(代码截图也封上 方便如果这种的小菜鸡阅读)
(代码也整过来吧 方便咱们copy 到时候直接改就行了)
@PostMapping(value = "/import", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}, produces = "application/json;" +
"charset=UTF-8")
public CommonResponse uploadFile(
@RequestParam(value = "file") MultipartFile file) throws UnsupportedEncodingException {
return CommonResponse.success(colophonService.uploadFile(file));
}
private String realPath;
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Error.class, Exception.class})
public String uploadFile(MultipartFile file) {
File targetFile = new File(realPath);//获取指定路径 也就是咱们刚说的要上传的位置
if (!targetFile.exists()) {//如果指定文件夹不存在
targetFile.mkdirs();//创建文件夹
}
// 原文件名称 file.getOriginalFilename()
// 从父路径名字符串和子路径名字符串创建新的 File实例。这个File方法的话 就自己去看源码吧
File upload = new File(realPath, file.getOriginalFilename());
try {
//InputStream和File相互转化
org.apache.commons.io.FileUtils.copyInputStreamToFile(file.getInputStream(), upload);
} catch (Exception e) {
log.info("导入失败", e);
}
return file.getOriginalFilename();
}
multipart.maxRequestSize=2500MB(这是我所使用的SpringBoot版本)
multipart.maxFileSize=100Mb
multipart.maxRequestSize=1000Mb
Spring Boot 1.4.x
spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb
Spring Boot 2.0之后
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB
当你配置完之后启动项目调用方法会发现(⊙o⊙)…卧槽!怎么还不行,别急你在启动类再加个东西试试呢?
@Bean
public MultipartConfigElement multipartConfigElement(@Value("${multipart.maxFileSize}")String maxFileSize, @Value("${multipart.maxRequestSize}") String maxRequestSize) {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize(DataSize.parse(maxFileSize));
factory.setMaxRequestSize(DataSize.parse(maxRequestSize));
return factory.createMultipartConfig();
}
到这里也就完事了,当然可能也有些像我一样的菜鸡不知道这种上传文件应该如何测试,那么咱们就用postman来唠一唠吧
作者也是个刚入行的小垃圾 写的不对的地方请各位哥哥们批评指正



