2017-02-06 7 views
1

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

Вот мой 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.

Вопрос

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

ответ

0

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

request.fileNames.each { 
    MultipartFile file = request.getFile(it) 
    // do whatever you want with the file 
} 
+0

Я просто попытался это, и это, кажется, что код даже не входит, что закрытие. Кроме того, тип содержимого запроса равен null. – Anthony

 Смежные вопросы

  • Нет связанных вопросов^_^