使用 PHP 上传 AngularJS 图像



我以前做过这个,但现在它只是不起作用,我无法弄清楚到底出了什么问题。

我正在尝试使用 Angularjs 上传图像,方法是将其传递给 PHP 文件。但是由于某种原因,图像不会传递到PHP文件。

我的表格:

<form ng-submit="addImage()" id="addImageForm" class="collapse">
<div class="form-group">
<label for="newImage">Choose image</label><br>
<input type="file" file-input="files" onchange="angular.element(this).scope().setFile(this)">
</div>
<input type="submit" class="btn btn-success" value="Add">
</form>

我的 angularjs 指令似乎工作正常:

//File upload
app.directive("fileInput", function ($parse) {
return{
link: function ($scope, element, attrs) {
element.on("change", function (event) {
var files = event.target.files;
console.log(files[0].name);
$parse(attrs.fileInput).assign($scope, element[0].files);
$scope.$apply();
});
}
};
});

我的控制器:

//Get image name
$scope.setFile = function (element) {
$scope.$apply(function ($scope) {
$scope.theFile = element.files[0];
});
};
//Upload image
$scope.addImage = function () {
var form_data = new FormData();
angular.forEach($scope.files, function (file) {
form_data.append('file', file);
});
$http.post(
"handlers/add_image.php",
form_data,
{transformRequest: angular.identity, headers: {'Content-Type': undefined, 'Process-Data': false}}
).success(function (response) {
$scope.response = response;
});
};

我的PHP:

<?php
if(!empty($_FILES){
echo "There is a file!";
}else{
echo "There is no file";
}

更改

<input type="file" file-input="files" onchange="angular.element(this).scope().setFile(this)">

自:

<input type="file" name="files" onchange="angular.element(this).scope().setFile(this)">

这里有一个很好的例子

最新更新