图像上传与angularjs

时间:2015-05-15 08:10:52

标签: php angularjs

我在角度上传图片时遇到了小问题。

这段代码工作正常,它发送给带有eny trobels的PHP,我可以在REQUEST后面找到一个数据数组,问题是当我尝试print_r($ _ FILES); php说theres是和空数组。

    socialCtrl.directive('upload', function() {
    return {
        restrict: 'A',
        replace: true,
        controller: function($scope, $http, $rootScope) {
            var formdata = (window.FormData) ? new FormData() : false;

            $(".upload").bind("change", function (evt) {
                var file = this.files[0];

                if (!!file.type.match(/image.*/)) {
                    if ( window.FileReader ) {
                        var reader = new FileReader();
                        reader.onloadend = function (e) { 
                            $(".preview").find("img").attr("src", e.target.result);
                        };
                        reader.readAsDataURL(file);
                    }
                    if (formdata) formdata.append("file", file);
                }   

                if (formdata) {
                     $http({
                       method: 'POST',
                       url: 'php/imagesuploader.php',
                       data: formdata,
                       cache:false,
                        contentType: false,
                        processData: false,
                   }).success(function(result) {
                        console.log(result)
                    });
                }
            });
        }
    }
})

1 个答案:

答案 0 :(得分:0)

您不能像这样发布文件,您必须将其作为表单数据(作为多部分表单数据)提交或转换请求(如this blogpost中所示)。

如何发布表单数据的简单示例如下所示。

var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
})
.success(function(){
})
.error(function(){
});