zoukankan      html  css  js  c++  java
  • [转]LayUI文件上传加进度条

    https://www.cnblogs.com/tangbang/p/10121061.html

    1,页面

    <div class="layui-row layui-col-space5">
    <div class="layui-form-item">
    <label class="layui-form-label"><i class="i-red"></i>邀请说明</label>
    <div class="layui-input-block">
    <div class="layui-col-md2">
    <button type="button" style="margin-top: 2px;" class="layui-btn" id="js_upload"><i class="layui-icon"></i>上传文件</button>
    </div>
    <div class="layui-col-md7">
    <input type="text" name="fileName"  autocomplete="off" maxlength="50" class="layui-input js_upload_file_name" value="${inviteMap.fname }" placeholder="" readonly="readonly">
    </div>
    </div>
      </div>
      <input type="hidden" name="fileId" class="js_resource_invite_file_id" value="${inviteMap.file_id }">
    </div>

    <!--弹出进度条--> <div id="uploadLoadingDiv" style="display: none;"> <div class="layui-progress" lay-showpercent="true" lay-filter="js_upload_progress" style="margin: 10px;"> <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div> </div> <div class="layui-form-item" style="text-align: center"> <button class="layui-btn layui-btn-normal js_upload_progress_bar_sure" >确定</button> </div> </div>

    2.upload.js 搜索ajax

    $.ajax({
        url: l.url
        ,type: l.method
        ,data: formData
        ,contentType: false 
        ,processData: false
        ,dataType: 'json'
        ,xhr:l.xhr(function(e){//此处为新添加功能
             var percent=Math.floor((e.loaded / e.total)*100);//计算百分比
             l.progress(percent);//回调将数值返回
         })
         ,success: function(res){
             successful++;
             done(index, res);
             allDone();
         }
         ,error: function(e){
             console.log(e)
             aborted++;
             that.msg('请求上传接口出现异常');
             error(index);
             allDone();
         }
    });

    3.js

    layui.use(['form', 'layedit', 'laydate','element', 'upload','table'], function () {
      var upload = layui.upload;
    var form=layui.form; var element = layui.element;
    var $=layui.$;
    var table = layui.table;
    var laydate = layui.laydate;
    element.init(); form.render();
    //日期初始化 laydate.render({ elem: '#date_start', type: 'datetime' });
    //创建监听函数 var xhrOnProgress=function(fun) { xhrOnProgress.onprogress = fun; //绑定监听 //使用闭包实现监听绑 return function() { var xhr = $.ajaxSettings.xhr(); //通过此方法获得XMLHttpRequest对象 //判断监听函数是否为函数 if (typeof xhrOnProgress.onprogress !== 'function') { return xhr;
    } //如果有监听函数并且xhr对象支持绑定时就把监听函数绑定上去 if (xhrOnProgress.onprogress && xhr.upload) { xhr.upload.onprogress = xhrOnProgress.onprogress; } return xhr; } } upload.render({ elem: '#js_upload' ,url: gContextPath+"/uploadfile2.htm", ,multiple: false ,before:function(){ element.progress('js_upload_progress', '0%'); //设置页面进度条 layer.open({ type: 1, title: '上传进度', closeBtn: 1, //不显示关闭按钮 area: ['300px', '170px'], shadeClose: false, //开启遮罩关闭 content: $("#uploadLoadingDiv").html(), offset: '100px' }); } ,xhr:xhrOnProgress ,progress:function(value){//上传进度回调 value进度值 element.progress('js_upload_progress', value+'%');//设置页面进度条 } ,field: 'file' ,accept: 'images' ,data: { "index": 1, "appCbnid": "" }
    ,accept: 'file' //普通文件 ,done: function (res) { console.log(res); $(".js_upload_file_name").val(res[0].data.filename); $(".js_resource_invite_file_id").val(res[0].data.fid); } ,error: function () { layer.alert("上传失败",{offset: '100px'}); return false; } }); //关闭进度条提示 $(document).on('click','.js_upload_progress_bar_sure',function(){ layer.close(layer.index); });
    });
  • 相关阅读:
    mac下更改MySQL的默认编码
    pycharm使用gitlab输错密码解决办法
    Django中form组件的is_valid校验机制
    装饰器整理
    粘包
    MySQL常见数据库引擎及对比
    jtag、在线仿真器
    《如何高效学习》-整体性学习策略
    keil5到iar8的使用配置迁移
    Python3学习(1)——初步了解
  • 原文地址:https://www.cnblogs.com/sungong1987/p/11574172.html
Copyright © 2011-2022 走看看