Git Product home page Git Product logo

Comments (3)

sillysachin avatar sillysachin commented on July 23, 2024

I am trying to show progress per file. The events are trackable post submission. Need a way to update the preview template to show % progress.

function onUploadFileProgress(fileObj, event) {
    fileObj.uploadFileProgress = ((event.loaded / event.total) * 100);
    console.log('UploadProgress -> ' + fileObj.key + ' : ' +
        fileObj.uploadFileProgress
    );
}

/**
 * Upload Files
 */
function uploadFiles() {
    angular.forEach($scope.files, function(fileObj) {
        var UploadFileAPI = $resource(
            vm.uploadPath, {},
            {
                upload: {
                    method: 'POST',
                    isArray: false,
                    uploadEventHandlers: {
                        progress: function(event) {
                            onUploadFileProgress(fileObj, event);
                        }
                    },
                    transformRequest: angular.identity,
                    headers: {
                        'Content-Type': undefined,
                        'FileName': fileObj.lfFile.name,
                        'FileSize': fileObj.lfFile.size
                    }
                }
            }
        );

        var uploadData = new FormData();
        uploadData.append('file', fileObj.lfFile);
        var fileData = angular.toJson({
            'FileName': fileObj.lfFile.name,
            'FileSize': fileObj.lfFile.size
        });
        uploadData.append('fileData', fileData)

        var toast = $mdToast.simple()
            .position('top right')
            .hideDelay(1000);

        UploadFileAPI.upload(uploadData).$promise.then(function(response) {
            if (response.file.FileID) {
                toast.textContent(response.file.DisplayFileName + ' Uploaded Successfully!');
                $mdToast.show(toast);
            } else {
                toast.textContent('File upload Failed!!!');
                $mdToast.show(toast);
            }
        }, function() {
            toast.textContent('File upload Failed!!!');
            $mdToast.show(toast);
        });
    });
}

from angular-material-fileinput.

sillysachin avatar sillysachin commented on July 23, 2024
var lfId = genLfObjId();

var lfFileObj = {
    "key":lfId,
    "lfFile":lfFile,
    "lfFileName":lfFileName,
    "lfDataUrl":lfDataUrl,
    "counterId" : 'counter'+lfId
};

var elPreview = angular.element(tplPreview);
var fileProgressId = lfFileObj.key + '-uploadFileProgress';
lfFileObj.uploadFileProgress = 0;
scope[lfFileObj.counterId] = 0;
$interval(function() {
    scope[lfFileObj.counterId]  = lfFileObj.uploadFileProgress;
    scope.$digest();
}, 100, 0, false);
var elFooter = angular.element('<div class="lf-ng-md-file-input-frame-footer"><md-progress-linear id="' + fileProgressId + '" md-mode="determinate" value="{{'+lfFileObj.counterId+'}}"></md-progress-linear><div class="lf-ng-md-file-input-frame-caption">' + lfFile.name + '</div></div>');

The above approach new needs a bit of deeper angular skills to improve the hotch-potch $interval code i hacked in.

from angular-material-fileinput.

shuyu avatar shuyu commented on July 23, 2024

Hi sillysachin ! thanks a a lot for your precious suggestions !!
I am busy at work recently ... when i have free time i will try to implement this as soon as i can !!

from angular-material-fileinput.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.