Unknown provider: $uploadProvider <- $upload


Anyone know why I’m getting Unknown provider on this Angular code ?

I am using the Angular File Upload directive and are using this example :


Just cannot seem to figure out why I’m getting this error…

module.js file :

angular.module('photoApp', ['ngRoute']);

scripts.js file :

    // configure our routes
    angular.module('photoApp').config(function ($routeProvider) {

            // route for the home page
            .when('/', {
                templateUrl: 'Pages/home.html',
                controller: 'mainController'

            // route for the contact page
            .when('/uploadphoto', {
                templateUrl: 'Pages/photoupload.html',
                controller: 'photoUploadController'

// create the controller and inject Angular's $scope

    function ($scope, $http, $timeout, $upload) {
        $scope.message = 'Upload your photo';

        $scope.upload = [];
        $scope.fileUploadObj = { testString1: "Test string 1", testString2: "Test string 2"         

        $scope.onFileSelect = function($files) {
            //$files: an array of files selected, each file has name, size, and type.
            for (var i = 0; i < $files.length; i++) {
                var $file = $files[i];
                (function(index) {
                    $scope.upload[index] = $upload.upload({
                        url: "./api/file/upload", // webapi url
                        method: "POST",
                        data: { fileUploadObj: $scope.fileUploadObj },
                        file: $file
                    }).progress(function(evt) {
                        // get upload percentage
                        console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
                    }).success(function(data, status, headers, config) {
                        // file is uploaded successfully
                    }).error(function(data, status, headers, config) {
                        // file failed to upload

        $scope.abortUpload = function(index) {


Just add the dependancy on angularFileUpload and be sure to reference the JS files in the correct order, and you should be good to go


<script src="angular-file-upload-shim.min.js"></script> 
<script src="angular.min.js"></script>
<script src="angular-file-upload.min.js"></script> 


angular.module('photoApp', ['ngRoute', 'angularFileUpload']);

Answered By – domokun

Answer Checked By – David Marino (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.