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实现jQuery-form.js实现异步上传文件
Apr 28 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
jquery ztree实现右键收藏功能
Nov 20 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
关于jquery中attr()和prop()方法的区别
May 28 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
jquery实现垂直手风琴导航栏
Feb 18 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脚本
2006/11/26 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
浅谈php://filter的妙用
2019/03/05 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
应届生妇产科护士求职信
2013/10/27 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android