zoukankan      html  css  js  c++  java
  • angular在1.5.5以上文件上传进度监控

    angular在1.5.5以上的版本中,在$http中也加入了eventHandler和uploadEventHandlers等方法。

    发送请求:

    $http({
    method:"POST",
    url:basePath+"/roadShow/saveOrUpdate",
    eventHandlers: {
    progress: function(c) {
    console.log('Progress -> ' + c);
    console.log(c);
    }
    },
    uploadEventHandlers: {
    progress: function(e) {
    console.log('UploadProgress -> ' + e);
    console.log(e.loaded/e.total*100);
    }
    },
    data:form,
    headers:{"Content-Type":undefined},
    transformRequest: angular.identity
    })
    $scope.uploadSample = function(sampleFile){
            var fd = new FormData();
            fd.append('file',sampleFile);
            $http({
                method:'post',
                uploadEventHandlers: {
                    progress: function(e) {
                       $scope.sampleFile.progress = parseInt(e.loaded/e.total*100);
                    }
                },
                url:$scope.baseUrl + 'sampleCenter/administration',
                data:fd
            }).then(function(response){
                if(response.data.error){
                    ngTip.tip(response.data.error, 'error');
                }else{
                    ngTip.tip(response.data.success, 'success');
                }
            },function(){
                ngTip.tip('上传失败请与管理员联系', 'error');
            })
        }
    <div class="login_wrapper">
        <form name="fileForm">
            <fieldset>
                <legend>文件上传</legend>
                <div class="form-group">
                    <input type="file" ngf-select ng-model="sampleFile" name="filename" accept=".xlsx" required ngf-model-invalid="errorFile">
                      <i ng-show="fileForm.file.$error.required">*请选择文件</i>
                </div>
                <div class="form-group">
                    <button ng-click="sampleFile = null" ng-show="sampleFile" class="btn btn-danger btn-sm">移除</button>
                    <button ng-disabled="!fileForm.$valid" ng-click="uploadSample(sampleFile)" class="btn btn-primary btn-sm">上传</button>
                </div>
                <div class="form-group">
                    <div class="progress">
                        <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="{{sampleFile.progress}}%" ng-bind="sampleFile.progress + '%'"></div>
                    </div>
                </div>
            </fieldset>
        </form>
    </div>


    其中,可以用e.loaded/e.total*100来计算进度:

    实际应用时,可结合Math.floor()。

  • 相关阅读:
    【HDU3721】枚举+最长路
    满足要求的最长上升子序列(nlogn)
    Flask入门 表单Flask-wtf form原生 Bootstrap渲染(七)
    Flask入门之模板导入与块宏(六)
    Flask入门模板过滤器与测试器(五)
    Flask入门模板Jinja2语法与函数(四)
    Flask入门flask-script 蓝本 钩子函数(三)
    Flask入门request session cookie(二)
    Flask入门 flask结构 url_for 重定向(一)
    Django问卷调查项目思路流程
  • 原文地址:https://www.cnblogs.com/yiyangl/p/10691643.html
Copyright © 2011-2022 走看看