Я делал это раньше, но сейчас это просто не работает, и я не могу понять, что в мире не так.
Я пытаюсь загрузить изображение с 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";
}