我的angularJS文件上传无效。它显示错误的请求错误。怎么解决?我正在使用java spring

时间:2016-10-03 14:09:09

标签: javascript java angularjs

mainRought.js

var myApp = angular.module('myApp',['ngRoute','ngFileUpload','angularFileUpload','ui.grid','ui.bootstrap','ngCookies','ngResource','angular-media-preview','ngComboBox']);

my curdopration.js

myApp.controller('curdopration', function($scope, $http , $modal , $location , $rootScope , $window , $upload, CustomerService) {

$scope.addUser=function(registrationData)
    {
        $upload.upload({
                    url : _path + '/cityController/addUser',
                    data : registrationData,
                    file : userImage,
                    method : "POST",
                    /*headers : "content-type=multipart/*"*/
                })  
    }
});

citycontroller.java

[@RequestMapping(value="/addUser", method = RequestMethod.POST,headers = "content-type=multipart/*")
    public @ResponseBody void addUser(@RequestBody curdOpration curdopration,@RequestParam("file") MultipartFile file){
        System.out.println("Countryname"+curdopration.toString());
        cityService.addUser(curdopration);
    }][1]

我的浏览器显示 POST http://localhost:8081/demopeoject/cityController/addUser 400(错误请求)

1 个答案:

答案 0 :(得分:4)

在角度代码中使用$ upload.upload而不是$ http.post。

$upload.upload({
    url : 'saveUserData',
    file : yourFile,
    data : $scope.userDataBean,
    method : 'POST'
});

更换弹簧控制器。

@RequestMapping(value = "/saveUserData", method = RequestMethod.POST, headers = ("content-type=multipart/*"))
public @ResponseBody String saveUserDataAndFile(@RequestParam("file") MultipartFile file, UserDataBean userDataBean) {
    System.out.println("output: " + userDataBean.toString());
    return "";
}