文件上载失败,angularjs和spring启动失败

文件上载失败,angularjs和spring启动失败,angularjs,spring-boot,file-upload,Angularjs,Spring Boot,File Upload,我想上传文件 controller.js userService.saveProfile($scope.user.profile.companyLogo).then(function(response){ if(response.status==201){ $('#profileModal').hide(); $scope.load(); } }); service.js saveProfile:function(logo){

我想上传文件

controller.js

userService.saveProfile($scope.user.profile.companyLogo).then(function(response){
    if(response.status==201){
        $('#profileModal').hide();
        $scope.load();
    }
});
service.js

saveProfile:function(logo){
            var formData = new FormData();
            formData.append("file",logo);
            var retVal = $http({
                method : 'POST',
                url : '/api/user/profile',
                transformRequest: angular.identity,
                headers: {'Content-Type': undefined},
                data: formData
            }).then(function(response){
                return response;
            });
            return retVal;
        }
Controller.java

@RequestMapping(value="/profile",method = RequestMethod.POST,headers="'Content-Type':'multipart/form-data'")
    public ResponseEntity saveProfile(@RequestBody MultipartFile file){
        System.out.println(file);
        return new ResponseEntity(HttpStatus.CREATED);
    }
如果我将头添加到@RequestMapping,我得到的是404,如果我删除它,我得到的是文件null

请给我建议正确的上传文件的方法,它很有效

我从@RequestMapping中删除了头,并使用@RequestPart而不是@RequestBody

@RequestMapping(value="/profile",method = RequestMethod.POST)
    public ResponseEntity saveProfile(@RequestPart("file") MultipartFile file){
        System.out.println(file);
        return new ResponseEntity(HttpStatus.CREATED);
    }

您是否在服务中获取文件的值?@Vivz是的,我在服务中获取值。它是否在服务中。然后?@Vivz然后我尝试以表单数据的形式发布到服务器,但它在服务器端抛出404,带有标题。您必须从angular js中指定enctype=“multipart/form data”。