angularjs+;Spring4REST-使用json数据上传文件
我有一个网页,员工可以填写他们的详细信息和上传图像。我正在向我的spring rest发送post请求,其中包含文件和表单数据,如下所示:angularjs+;Spring4REST-使用json数据上传文件,angularjs,spring-restcontroller,spring-rest,Angularjs,Spring Restcontroller,Spring Rest,我有一个网页,员工可以填写他们的详细信息和上传图像。我正在向我的spring rest发送post请求,其中包含文件和表单数据,如下所示: var formData=new FormData(); formData.append("data", angular.toJson($scope.employee)); formData.append("file",$scope.file); $http.post('rest/employee/upload', formData,
var formData=new FormData();
formData.append("data", angular.toJson($scope.employee));
formData.append("file",$scope.file);
$http.post('rest/employee/upload', formData, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(){
})
.error(function(){
});
下面是我的spring控制器:
@RequestMapping(value="/upload", method = RequestMethod.POST)
public @ResponseBody EmployeeBean upload(EmployeeBean employeeBeanJson, MultipartFile file) {
}
当我发送带有image和formdata的post请求时,image正确地到达了控制器,但是formdata即employeeBean包含null值的文件
当我将控制器更改为:
@RequestMapping(value="/upload", method = RequestMethod.POST)
public @ResponseBody EmployeeBean upload(MultipartFile file, @RequestParam("data") String employeeBeanJson) {
}
这里formdata是字符串json,包含所有必需的值
我已将multiPartResolver添加到spring上下文:
<beans:bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="2097152" />
</beans:bean>
虽然我可以将这个字符串json转换为Object,但问题是我不能使用@Valid,我需要再次进行验证
有没有办法让第一个spring控制器工作?
如果我使用对象映射器手动转换jsonToObject,有没有方法调用@Valid