jquery 实现拖动文件上传加载进度条功能


Posted in jQuery onMarch 18, 2018

通过对文件的拖动实现文件的上传,主要用到的是HTML5的ondrop事件,上传内容通道FormData传输:

//进度条
<div class="parent-dlg" >
 <div class="progress-label">0%</div>
 <div class="son"></div>
</div>
//要拖动到的地方
<div class="main_content_center"></div>

js:

var dz = $('#main_content_center');
dz.ondragover = function(ev) {
 //阻止浏览器默认打开文件的操作
 ev.preventDefault();
}
dz.ondrop = function(ev) {
 ev.preventDefault();
 var files = ev.dataTransfer.files;
 var len = files.length,i = 0;
 while (i < len) {
  var filesName=files[i].name;
  var extStart=filesName.lastIndexOf(".");
  var ext=filesName.substring(extStart,filesName.length).toUpperCase();
  if(ext!=".JPG"&&ext!=".PNG"&&ext!=".XML"){ //判断是否是需要的问件类型
  TS.errorAlert("请选择.jpg、.png、.xml类型的文件上传!");
  return false;
  }else{
  test(files[i]);
  }
  i++;
 }
 $(".parent-dlg").show();
}
function test(a){
 var formData = new FormData();
 formData.append("name", a.name);
 formData.append("size", a.size);
 formData.append("data", a);
 $.ajax({
 url:'',
 type:'post',
 data:formData,
 cache: false,
 processData: false,
 contentType: false,
 xhr: function(){
 var xhr = $.ajaxSettings.xhr();
 if(onprogress && xhr.upload) {
  xhr.upload.addEventListener("progress" , onprogress, false);
  return xhr;
 }
 } 
 })
};
function onprogress(evt){
 var loaded = evt.loaded;  //已经上传大小情况 
 var tot = evt.total;  //附件总大小 
 var per = Math.floor(100*loaded/tot); //已经上传的百分比 
 $(".progress-label").html( per +"%" );
 $(".son").css("width" , per +"%");
 if(per>=100){
 $(".parent-dlg").hide();
 }
 }

 进度条css:

.parent-dlg{position: absolute;width:400px; height:20px; border:1px solid #aaaaaa;border-radius:3px;top:30%;left:50%;z-index:9999;margin-left:-200px;display:none;}
.parent-dlg .progress-label{position: absolute;left: 50%;top: 4px;font-weight: bold;text-shadow: 1px 1px 0 #fff;} 
.parent-dlg .son {width:0; height:100%; background-color:#cccccc; text-align:center; line-height:20px; font-size:16px; font-weight:bold;}

 此内容只是一个大概的文件上传技术方向,可根据自己的项目进行改进! 

总结

以上所述是小编给大家介绍的jquery 实现拖动文件上传加载进度条功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

jQuery 相关文章推荐
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
jQuery模拟爆炸倒计时功能实例代码
Aug 21 jQuery
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
jquery 时间戳转日期过程详解
Oct 12 jQuery
jQuery实现简单聊天室
Feb 08 jQuery
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
jQuery中each方法的使用详解
Mar 18 #jQuery
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 #jQuery
JQuery选中select组件被选中的值方法
Mar 08 #jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 #jQuery
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 #jQuery
jQuery实现左右滑动的toggle方法
Mar 03 #jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 #jQuery
You might like
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
python中map、any、all函数用法分析
2015/04/21 Python
python中logging库的使用总结
2017/10/18 Python
Python星号*与**用法分析
2018/02/02 Python
python如何将图片转换为字符图片
2020/08/19 Python
分享vim python缩进等一些配置
2018/07/02 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python实现井字棋小游戏
2020/03/04 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
初二政治教学反思
2014/01/12 职场文书
校园广播稿100字
2014/10/06 职场文书
初中运动会前导词
2015/07/20 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
公司车队管理制度
2015/08/04 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS