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动态追加页面数据以及事件委托详解
May 06 jQuery
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 jQuery
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
jquery更改元素属性attr()方法操作示例
May 22 jQuery
jQuery实现简单飞机大战
Jul 05 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 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代码(星期六,星期日总和)
2009/11/12 PHP
给ECShop添加最新评论
2015/01/07 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
js parseInt(&quot;08&quot;)未指定进位制问题
2010/06/19 Javascript
JSON格式化输出
2014/11/10 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
省优秀教师事迹材料
2014/01/30 职场文书
师德师风的心得体会
2014/09/02 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
听证通知书
2015/04/24 职场文书
离职信范文
2015/06/23 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis
关于Redis的主从复制及哨兵问题
2022/06/16 Redis