Как отправить массив файлов из угловых в php скрипт?

0

Я хочу реализовать загрузку файлов в моем приложении. Я использую AngularJS и написал метод в контроллере, чтобы получить все файлы из ввода формы. В консоли браузера у меня есть массив с выбранными файлами, но когда я отправляю этот массив на бэкэнд, он пуст. Я отправляю другие данные одним и тем же методом, и я могу читать его в скрипте PHP без проблем, только массив файлов пуст.

Это метод получения файлов со входа и отправки его на сервер:

 $scope.addFilesFunction = function() {
        $scope.filesList = document.getElementById('fileupload').files;
        var fd = new FormData();
        for (var i = 0; i < $scope.filesList.length; i++) {
             fd.append('file', $scope.filesList[i]);
        }
        Database.insert('file', {'files': fd}, function(response) {

        });
    };

И это часть моего PHP-кода:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$files = $request->files;
  • 0
    Какой формат файла вы пытаетесь отправить на сервер?

1 ответ

0

От: https://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs

Его трудно описать без кода, но похоже, что вы не отправляете фактические файлы на PHP.

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

а также

var file = $scope.myFile;
var uploadUrl = 'http://www.example.com/yourphpscript.php';
fileUpload.uploadFileToUrl(file, uploadUrl);

а затем используйте ваш php-скрипт для обработки любой магии базы данных, которую вы хотите работать. Если вы хотите импортировать массив файлов, просто передайте массив в fileUpload, а затем выполните итерацию по вашему файловому массиву и добавьте их вместе с добавлением FormData.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню