Как использовать ng-file-upload с grails 2.5.3

Я пытаюсь использовать ng-file-upload для загрузки нескольких файлов одновременно в действие моего контроллера Grails. Тем не менее, я не могу понять, как получить файлы, загружаемые в действие.

Вот мой код JS:

app.controller('MyCtrl', ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
    $scope.uploadFiles = function (files) {
        $scope.files = files;
        if (files && files.length) {
            Upload.upload({
                url: 'http://localhost:8080/classifydemo/request/create',
                data: {
                    files: files
                }
            }).then(function (response) {
                $timeout(function () {
                    $scope.result = response.data;
                });
            }, function (response) {
                if (response.status > 0) {
                    $scope.errorMsg = response.status + ': ' + response.data;
                }
            }, function (evt) {
                $scope.progress = 
                    Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
            });
        }
    };
}]);

И мое действие Grails ниже:

class RequestController {

    def create() {
        request.headerNames.each{
           println it
        }
        println params
        println request.getFile("file")
        render "test"
    }

}

Вышеприведенный код не работает на request.getFile,

Вопрос

Как я могу получить файлы, которые загружаются на контроллер, чтобы я мог обработать их в цикле.

1 ответ

Решение

Поскольку у вас есть возможность нескольких файлов, вы должны использовать:

request.fileNames.each {
  MultipartFile file = request.getFile(it)
  // do whatever you want with the file
}
Другие вопросы по тегам