我正在使用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
我该如何解决? 请帮我。 感谢您的观看。
答案 0 :(得分:0)
由于您在控制器方法中指定了参数文件名必须为file
,所以发生了错误,但是您没有在客户端代码中设置它
两种解决方法:
a。删除@RequestParam("file")
以避免指定参数名称
b。将name
属性添加到您的文件元素中,如下所示:
<input type='file' name='file'>