需要帮助上传图片

时间:2016-07-20 10:53:26

标签: angularjs file upload

我正在尝试使用AngularJS上传包含2个属性,名称和图片的目标文件。我知道这个话题已被多次处理,但无论我读什么,我似乎无法使其工作。 我正在使用Java Spring作为我的服务器,当我尝试通过我的客户端上传“字符”(名称+图片)时,我在服务器中收到此错误:“所需的请求正文内容丢失”...

这是我的代码:

.config(function($stateProvider, $httpProvider, $resourceProvider) {

$resourceProvider.defaults.stripTrailingSlashes = false;

$httpProvider.defaults.transformRequest = function(data) {
    if (data === undefined)
        return data;

    var fd = new FormData();
    angular.forEach(data, function(value, key) {
        if (value instanceof FileList) {
            if (value.length == 1) {
                fd.append(key, value[0]);
            } else {
                angular.forEach(value, function(file, index) {
                    fd.append(key + '_' + index, file);
                });
            }
        } else {
            fd.append(key, value);
        }
    });

    return fd;
}

$httpProvider.defaults.headers.post['Content-Type'] = undefined;

这是我的服务:

angular.module('myApp.services', ['ngResource'])
.factory('Character', function($resource) {
    return $resource('http://localhost:8080/myApp/character/:id',
        { id: '@id' },
        { update: { method: 'GET', transformRequest: angular.identity, headers: { 'Content-Type': undefined }  } }
    );
})

.service('popupService', function($window){
    this.showPopup = function(message){
        return $window.confirm(message);
    }
});

最后这就是我在我的控制器中使用它的方式:

.controller('CharacterCreateController',function($scope,$state,$stateParams,Character){

$scope.character = new Character();

$scope.addCharacter = function(){
    $scope.character.$save(function(){
        $state.go('characters');
    });
}

})

有人可以帮帮我吗?我真的不知道该怎么做,这是我第一次尝试使用Angular上传文件。

0 个答案:

没有答案