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实现文字打印动态效果
Apr 21 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
jQuery 表单序列化实例代码
Jun 11 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
jQuery选择器之子元素选择器详解
Sep 18 jQuery
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 jQuery
jQuery实现列表的增加和删除功能
Jun 14 jQuery
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
jQuery实现的移动端图片缩放功能组件示例
May 01 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
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
Javascript 继承机制实例
2009/08/12 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python中update的基本使用方法详解
2019/07/17 Python
python创建子类的方法分析
2019/11/28 Python
Python表达式的优先级详解
2020/02/18 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
物业管理求职自荐信
2013/09/25 职场文书
环境工程专业自荐信
2014/03/03 职场文书
倡议书范文格式
2014/05/12 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
村委会贫困证明范本
2014/09/17 职场文书
铅球加油稿100字
2014/09/26 职场文书
商务邀请函
2015/01/30 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android