Как я могу загрузить два файла, используя два разных файла ввода в Angular Js? - PullRequest
0 голосов
/ 24 апреля 2018

Я проверяю расширение файлов, используя угловые js, мой HTML-код:

 <input type="file" name="file"  onchange=" angular.element(this).scope().selectFileforUpload(this.files) " required/>
 <input type="button" value="Click" ng-click="click()" />

и код углового контроллера:

$scope.verifiedFileType = function (file) {

        var fileName = file.name;
        var extension = (fileName.substring(fileName.lastIndexOf('.'), fileName.length)).toLowerCase();
        if (extension === ".pdf") {
            return true;
        }
        else {

            return false;
        }
    };


    $scope.click = function () {

        if ($scope.verifiedFileType($scope.SelectedFileForUpload)) {
            alert("Yes");
        } else {
            alert("No");
        }

    }

Это прекрасно работает.Но я хочу проверить расширение двух файлов двух отдельных файловых входов.Я пробовал это:

<input type="file" name="file"  onchange=" angular.element(this).scope().selectFileforUpload(this.files) " required/>
<input type="file" name="file2"  onchange=" angular.element(this).scope().selectFileforUpload(this.files) " required/>
<input type="button" value="Click" ng-click="click()" />


 $scope.click = function () {

        if ($scope.verifiedFileType($scope.SelectedFileForUpload[0]) && $scope.verifiedFileType($scope.SelectedFileForUpload[1])) {
            alert("Yes");
        } else {
            alert("No");
        }

    }

Но этот код не работает.Как я могу выполнить эту задачу?

1 Ответ

0 голосов
/ 24 апреля 2018

Вы можете использовать приведенный ниже директивный подход для достижения этой цели.

Директива

app.directive('ngFileModel', ['$parse', function ($parse) {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            var validFormats = ['jpg'];
            element.bind('change', function () {
                var values = [];
                angular.forEach(element[0].files, function (item) {
                  var fileName = item.name;
                  console.log(fileName);
                    let ext = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();

                    if(validFormats.indexOf(ext) == -1){
                       //Setup image upload logic here...
                    }
                });

            });
        }
    };
}]);

HTML

 <body ng-controller="MainCtrl">
    <input type="file" ng-file-model="files1" multiple />
    <input type="file" ng-file-model="files" multiple />
  </body>

Надеюсь, это даст вам импульс!

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