Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs+;Spring4REST-使用json数据上传文件_Angularjs_Spring Restcontroller_Spring Rest - Fatal编程技术网

angularjs+;Spring4REST-使用json数据上传文件

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,

我有一个网页,员工可以填写他们的详细信息和上传图像。我正在向我的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, {
        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