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+PHP+Mysql实现抽奖程序
Apr 12 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
jquery实现动态改变css样式的方法分析
May 27 jQuery
jQuery层叠选择器用法实例分析
Jun 28 jQuery
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
Feb 01 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
jQuery实现滑动开关效果
Aug 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
微信公众平台开发之配置与请求
2015/08/26 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
Python enumerate遍历数组示例应用
2008/09/06 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python Matplotlib库入门指南
2015/05/18 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
django的ORM模型的实现原理
2019/03/04 Python
Django 反向生成url实例详解
2019/07/30 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
python实现发送邮件
2021/03/02 Python
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
高一家长会邀请函
2014/01/12 职场文书
网络宣传方案
2014/03/15 职场文书
初中教师业务学习材料
2014/05/12 职场文书
中药学自荐信
2014/06/15 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers