AngularJS загрузка изображения с PHP - PullRequest
0 голосов
/ 15 января 2020

Я делал это раньше, но сейчас это просто не работает, и я не могу понять, что в мире не так.

Я пытаюсь загрузить изображение с 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";
}

1 Ответ

0 голосов
/ 15 января 2020

Изменить

<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)">

Хороший пример здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...