Springboot中图片上传报java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Local\Temp\tomcat.8080.589
Springboot图片上传中用MultipartFile接受文件,上传报错java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Local\Temp\tomcat.8080.5893235156551690444\
原因:MultipartFile在调用方法transferTo把文件上传到指定的路径后,会自动关闭这个流,后面无法再调用这个方法。因此需要用异步方法处理一下
解决:用异步方法来上传可以解决
1 @PostMapping("/upload") 2 public String upload(@RequestParam("email") String email, 3 @RequestParam("password") String password, 4 @RequestPart("headimg")MultipartFile multipartFile, 5 @RequestPart("lifeimg")MultipartFile[] multipartFiles) throws IOException { 6 int length = multipartFiles.length; 7 log.info("email={},password={},headImg={},lifeImg{}",email,password,multipartFile.getSize(), 8 multipartFiles.length); 9 uoloadImg(multipartFile,multipartFiles);//用异步方法来上传完美解决 10 11 return "index"; 12 } 13 @Async 14 public void uoloadImg(MultipartFile head,MultipartFile[] photos) throws IOException { 15 if (photos.length > 0){ 16 for (MultipartFile file : photos) { 17 if (!file.isEmpty()){ 18 String originalFilename = file.getOriginalFilename(); 19 file.transferTo(new File("G:\\上传图片\\"+originalFilename)); 20 } 21 22 } 23 } 24 if (!head.isEmpty()){ 25 String originalFilename = head.getOriginalFilename(); 26 head.transferTo(new File("G:\\上传图片\\" + originalFilename)); 27 } 28 }