我在角度上传图片时遇到了小问题。
这段代码工作正常,它发送给带有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)
});
}
});
}
}
})
答案 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(){
});