2017-04-26 61 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

相關問題