2015-02-06 22 views
0

我想使用角度文件上传。该文件正从视图发送到角度控制器,但不会向apiController发送任何内容。我做了一个笨蛋。角度文件上传不发布任何东西

Plunker

它植入文件在

$scope.upload = function (files) { 
     $scope.$watch('files', function() { 
    $scope.upload($scope.files); 
}); 

$scope.upload = function (files) { 
    if (files && files.length) { 
     for (var i = 0; i < files.length; i++) { 
      var file = files[i]; 
      $upload.upload({ 
       url: 'https://angular-file-upload-cors-srv.appspot.com/upload', 
       fields: { 'companyName': $scope.companyName }, 
       file: file 
      }).progress(function (evt) { 
       var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
       console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); 
      }).success(function (data, status, headers, config) { 
       console.log('file ' + config.file.name + 'uploaded. Response: ' + data); 
      }); 
     } 
    } 
}; 

更新

我看到你的成功的功能是如何被击中。我的仍然不是。并且我的控制台中没有javascript错误。我能做些什么来调试它?

回答

2

由于$ scope.files是数组,你需要设置第三个参数的$观赏功能为 '真'

$scope.$watch('files', function() { 
     console.log($scope.files); 
     $scope.upload($scope.files); 
    }, true); 

请参阅演示在这里工作

http://plnkr.co/edit/lGjgTIeVZdgxcS2kaE7p?p=preview

app.controller('MainCtrl', function($scope, $upload) { 
    $scope.$watch('files', function() { 
    $scope.upload($scope.files); 
    }); 

    $scope.upload = function(files) { 
    if (files && files.length) { 
     for (var i = 0; i < files.length; i++) { 
     var file = files[i]; 
     $upload.upload({ 
      url: 'https://angular-file-upload-cors-srv.appspot.com/upload', 
      fields: { 
      'companyName': $scope.companyName 
      }, 
      file: file 
     }).progress(function(evt) { 
      var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
      console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); 
     }).success(function(data, status, headers, config) { 
      console.log('file ' + config.file.name + 'uploaded. Response: '); 
     //response from server   
     console.log(data); 
     }); 
     } 
    } 
    }; 
}); 
+0

我仍然得到与第三个参数相同的回应?进度:59%LovelaceWSH_CMYK.jpg 2app.js:19进度:100%LovelaceWSH_CMYK.jpg app.js:21文件LovelaceWSH_CMYK.jpguploaded。回应:[对象对象] – texas697 2015-02-06 12:56:05

+0

@ texas697,你期望什么回应?请看这里http://plnkr.co/edit/BMiWjahXiFcPEqOBpnqI?p=preview – sylwester 2015-02-06 13:06:32

+0

哦,对不起,我感到困惑,我将你的代码添加到我的掠夺者。我看到你的工作,你在哪里添加这个?它不在你的控制器 – texas697 2015-02-06 13:14:51

相关问题