错误提示:
消息 Required request part 'file' is not present
描述 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
解决办法:
1. 查看参数是否绑定:@RequestParam("file") MultipartFile file
package com.zhr.springmvchelloworld; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @Controller public class TestFileUpload { @RequestMapping("fileUpload") public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { System.out.println("file.getOriginalFilename() = " + file.getOriginalFilename()); // 文件的接收参数 @RequestParam MultipartFile file 中的 file System.out.println("file.getName() = " + file.getName()); // 文件的类型 System.out.println("file.getContentType() = " + file.getContentType()); System.out.println("file.getResource() = " + file.getResource()); System.out.println("file.getBytes() = " + file.getBytes()); // 文件大小 System.out.println("file.getSize() = " + file.getSize()); return "file"; } }
2. 排查前端文件的filename是否一致
<input type="file" multiple="multiple" accept="image/*" name="file" id="file">
<form action="http://localhost:8080/springmvc_helloworld_war_exploded/fileUpload" method="post" enctype="multipart/form-data"> <div><input type="file" multiple="multiple" accept="image/*" name="file" id="file"></div> <div><input type="submit" value="上传"></div> </form>
3. SpringMVC 配置文件出错
SpringMVC.xml文件中添加以下文字,并重启tomcat
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="10240000"></property> </bean>