2017-04-26 19 views
1
angular.js:13920 Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=%24uploadProvider%20%3C-%20%24upload%20%3C-%20MainController 
at http://localhost:8080/libs/angular/angular.min.js:6:412 
at http://localhost:8080/libs/angular/angular.min.js:43:174 
at Object.d [as get] (http://localhost:8080/libs/angular/angular.min.js:40:432) 
at http://localhost:8080/libs/angular/angular.min.js:43:236 
at d (http://localhost:8080/libs/angular/angular.min.js:40:432) 
at e (http://localhost:8080/libs/angular/angular.min.js:41:158) 
at Object.instantiate (http://localhost:8080/libs/angular/angular.min.js:42:24) 
at http://localhost:8080/libs/angular/angular.min.js:90:32 
at Object.link (http://localhost:8080/libs/angular-route/angular-route.js:1054:26) 
at http://localhost:8080/libs/angular/angular.min.js:16:71 <div ng-view="" class="ng-scope"> 

angular.module('MainController', []).controller('MainController', function($scope,$upload) { 
 

 
$scope.uploadFile = function (file) { 
 
     $Upload.upload({ 
 
      url: '/api/upload', 
 
      data: $scope.file 
 
     }).then(function (resp) { 
 
      console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data); 
 
     }, function (resp) { 
 
      console.log('Error status: ' + resp.status); 
 
     }, function (evt) { 
 
      var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
 
      console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name); 
 
     }); 
 
    }; 
 
});
<div ng-controller="MainController"> 
 
    <div> 
 
Upload File: 
 
<form> 
 
    <input type="file" ng-file-select="fileSelected($files)" > 
 
    <input type="submit" ng-click="uploadFile()" > 
 
</form> 
 
</div> 
 
</div>

app.js

angular.module('sampleApp', ['ngRoute', 'appRoutes', 'MainController', 'EventController','EventService','angularFileUpload','ngFileUpload']); 

我想上传一个文件选择然后在NodeJs中读取文件并保存在MongoDB中。 任何人都可以指定错误,我在这里做

感谢

回答

1

ng-file-upload docs,这是Upload没有$upload,你应该在控制器中注入。所以,它会是这样的,

angular 
    .module('MainController', []) 
    .controller('MainController', function($scope, Upload) { 

    $scope.uploadFile = function (file) { 
     Upload.upload({ 
      url: '/api/upload', 
      data: $scope.file 
     }).then(function (resp) { 
      console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data); 
     }, function (resp) { 
      console.log('Error status: ' + resp.status); 
     }, function (evt) { 
      var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
      console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name); 
     }); 
    }; 
}); 

这将帮助你摆脱你在上面提到的错误。

+0

谢谢tanmay。与此我得到了一些更多的错误,如metionanig控制器中的网址。 “POST http:// localhost:8080/api/upload 500(内部服务器错误)”.. sholud我做了另一个问题呢?或可以帮助我在这里 – MSKP

+0

@Shan很高兴它帮助。请提出答案。此外,你可以要求单独的问题,其他错误。如果你想,给我新的问题链接在这里..我会尽力解决 – tanmay

相关问题