mvc 上传文件 MultipartFile参数对像为空

这是 jsp代码

<form:form id="inputForm" modelAttribute="mbSchoolInfo" action="${ctx}/mbschool/mbSchoolInfo/save" method="post" class="form-horizontal" enctype="multipart/form-data">
    <div class="control-group">
        <label class="control-label">上传文件:</label>
        <div class="controls">
            <form:input path="files" name="file" type="file"/>
        </div>
    </div>  
</form:form>

这是 controller 代码

@RequiresPermissions("mbschool:mbSchoolInfo:edit")
@RequestMapping(value = "save" ,method=RequestMethod.POST)
public String save(MultipartFile file,HttpServletRequest request,MbSchoolInfo mbSchoolInfo, Model model, RedirectAttributes redirectAttributes) {
}

还有配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    <property name="maxUploadSize" value="${web.maxUploadSize}" />  
</bean>

。。怎么看着像jeesite?

MultipartFile file 前面加一个@RequestParam('file')注解
@RequestParam("file") MultipartFile file

参考我的

 @RequestMapping(params = "addUnitInfo")
    @ResponseBody
    public AjaxJson addUnitInfo(CaUnitInfo user,
            MultipartHttpServletRequest request) {
            MultipartFile file = request.getFile("file");
            if (!file.isEmpty()) {
                String uuid = UUID.randomUUID().toString()
                        .replaceAll("\\-", "");// 返回一个随机UUID。
                String filename = file.getOriginalFilename();
                int index = filename.lastIndexOf(".");
                filename = filename.substring(index, filename.length());
                filename = uuid + filename;
                System.out.println("FileName==" + filename);
                File uploadFile = new File(ctxPath + filename);
                FileCopyUtils.copy(file.getBytes(), uploadFile);
            }
            }

save方法参数:MultipartFile file 改为:
@RequestParam("file")CommonsMultipartFile file

@RequestParam("file") MultipartFile file 就可以

上传文件1版-上传文件及目录打散
https://blog.csdn.net/qq_17025903/article/details/70599464
上传文件2版-上传文件及解压判断压缩包
https://blog.csdn.net/qq_17025903/article/details/80408180
上传文件2版-上传文件断点续传及设计模式实现
https://blog.csdn.net/qq_17025903/article/details/83272955