layui动态展示上传进度

修改layui模块中的upload.js

 xhr:function () {
			var newXhr = i.ajaxSettings.xhr();
			// 给xhr的upload添加progress的监听
			newXhr.upload.addEventListener('progress' , function (e) {
				var percent = Math.floor(e.loaded / e.total * 100); //计算出进度
				typeof l.progress === 'function' && l.progress(e , percent); // 传递给upload的progress回调
			});
			return newXhr;
		},

 将上述代码添加到如下位置:

上传按钮

<button type='button' class='layui-btn' id='test1'><i class='layui-icon'>&#xe67c;</i>上传文件</button>

<div id="win" style="display:none" class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="progressBar">
    <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
</div>

js代码展示

 

layui.use(['upload','element','layer'], function(){
			  var upload = layui.upload;
			  var element = layui.element;
			  var layer = layui.layer;
			  element.init();
			  //执行实例
			  var uploadInst = upload.render({
			    elem: '#test1' //绑定元素
			    ,url: '/user/ceshi' //上传接口
			    ,accept: 'file'
			    ,data: {path:$("#path").val()}
			 	,progress: function(e , percent) {
					console.log("进度:" + percent + '%');
					element.progress('progressBar',percent  + '%');
				}
			  	,before:function(){
			  		layer.open({
			  		  type: 1,
    			  	  title: '上传进度',
			  		  area:'500px',
			  		  skin: 'layui-layer-molv',
			  		  closeBtn: 0,
			  		  content: $('#win') //这里content是一个普通的String
			  		});
			  	}
			    ,done: function(res){
			    	 if(res.code == 0){
			    		 alert("上传成功");
			    		window.location.reload();
			    	}else{
			    		alert("上传失败");
			    	}
			    }
			    ,error: function(){
			      //请求异常回调
			      alert("上传过程请勿其他操作!请重新上传");
			    }
			  });
  };

上传效果图:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值