在Spring 4.3.1中不存在必需的MultipartFile参数'file'

时间:2018-06-23 11:03:36

标签: java spring spring-mvc ng-file-upload

我正在使用Spring 4.3.1,并且我将使用ng-file-upload库上传文件。 这是我的JavaScript代码,当我将JavaScript代码连接到php服务器时,效果很好。

        var promise = Upload.upload({
            url: url + "upload",
            method: 'POST',
            file: file,
            ignoreLoadingBar: true
        }).success(function(response) {
            flatForm.jsonForm = response.jsonForm;
            flatForm.xmlForm = response.xmlForm;
        }).error(function(response) {
            $rootScope.$broadcast('veil:hide', {});
        });

然后我在/ web-inf / lib文件夹中添加了commons-io-2.4.0.0.jar和commons-fileupload-1.3.1.jar。 Ë 并且我在applicationContext.xml文件中添加了multipartResolver。

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

这是我的控制器类。

    @ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void upload(@RequestParam("file") MultipartFile file) throws Exception {
    if (file == null || file.isEmpty()) {
        throw new Exception("No file was sent.");
    }
}

但是当我上传文件时,会出现这样的错误。

Required MultipartFile parameter 'file' is not present

我该如何解决? 请帮我。 感谢您的观看。

1 个答案:

答案 0 :(得分:0)

由于您在控制器方法中指定了参数文件名必须为file,所以发生了错误,但是您没有在客户端代码中设置它

两种解决方法:

a。删除@RequestParam("file")以避免指定参数名称

b。将name属性添加到您的文件元素中,如下所示:

   <input type='file' name='file'>