0

Я не могу отменить загрузку запроса файла из углового, я использую приведенный ниже плагин для загрузки файла, и, согласно автору, он чувствует, что это простой способ, но я не уверен как его реализовать. Это то, как я загружаю файлы, из файлов Angular plugin, отправляемых в php и php intern, читает весь файл и передает его в java api через curl, поэтому теперь у меня есть кнопка «Отмена», и как только пользователь нажимает кнопку отмены отправки Мне нужно иметь возможность остановить загрузку с помощью углового плагина, поэтому, как только загрузка будет остановлена, я могу сделать еще один звонок, чтобы очистить половину потокового файла ... и другие средства для очистки.Отмена Угловая загрузка файла

Плагин Ссылка: https://github.com/danialfarid/ng-file-upload

$scope.uploadFiles = function(files) { 

if(files != undefined){ 
    $scope.currentFileUploadList = files; 
    $scope.$apply(); 
} 
angular.forEach(files, function(file, key) { 
    if(isSpecialChar(file.name)){ 
     //$scope.currentFileUploadList[key].status = false; 
     //$scope.$apply(); 
     file.upload = Upload.upload({ 
      url: $scope.BASE_FOLDER+'/sync/file/upload', 
      fields: {csrf_token: $('.csrf_token').html(), path: 'ParaBlu'}, 
      file: file 
     }); 

     file.upload.then(function (response) { 
      $timeout(function() { 
       file.result = response.data; 
       if(response.data.result == 'success'){ 
        $('.status').hide(); 
        toastr.success(response.data.file.fileName+' has been uploaded successfully', 'Successfully!!!', {allowHtml: true}); 
        $scope.currentFileUploadList.forEach(function(value, key){ 
         if(value.name.toString() == response.data.file.fileName.toString()){ 
          $scope.currentFileUploadList.splice(key, 1); 
         } 
        }); 
        if((files.length) == key){ 
         $('#uploadFiles').modal('hide'); 
        } 
       }else{ 
        toastr.error(file.name, response.data.msg, 'Fail!!!', {allowHtml: true}); 
       } 
      }); 
     }, function (response) { 
      if (response.status > 0) 
       $scope.errorMsg = response.status + ': ' + response.data; 
     }); 

     file.upload.progress(function (evt) { 
      file.progress = Math.min(100, parseInt(100.0 * 
       evt.loaded/evt.total)); 
     }); 
    }else{ 
     $scope.currentFileUploadList.forEach(function(value, key){ 
      if(value.name.toString() == file.name.toString()){ 
       $scope.currentFileUploadList.splice(key, 1); 
      } 
     }); 
     toastr.error('Special characters like (* \ | : " < > ? /) are not allowed, in a file name.', 'Fail!!!', {allowHtml: true}); 
    } 
}); 

};

+0

'/ * отменить/прервать загрузку. */ upload.abort(); /* ' –

+0

Скопировано из официальной документации. Кнопка - обратный вызов и затем обрабатывает все, что вам нужно сделать для бэкэнд, отправив запрос на бэкэнд. –

+0

Итак, вы, , если это работает, или я должен добавить прослушиватель событий для клика и вызвать функцию upload.abort(). –

ответ

0

Это не проблема с плагином, а с потоковой передачей, мне пришлось отменить поток файлов php отдельно, чтобы отменить загрузку, процесс, не уверен, y? Я, хотя установка прерывания пользователя на false в php.ini, также остановит запрос php curl, как только запрос ajax будет отменен, но этого не произошло, в любом случае спасибо за вашу помощь.