jQuery监听文件上传实现进度条效果的方法
2016-10-16 00:00
2191 查看
原理:
给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程
var xhr=new XMLHttpRequest(); xhr.upload.onprogress=function(e){}
因为jQuery默认使用的XMLHttpRequest对象是内部生成的无法直接给jq的xhr绑定onprogress方法
所以只要给jQuery重新生成一个绑定了onprogress的XMLHttpRequest对象即可实现
首先封装一个方法 传入一个监听函数 返回一个绑定了监听函数的XMLHttpRequest对象
上传时使用$.ajax方法
使用HW.js文件上传工具 自带进度条效果 支持绑定自定义监听函数,支持上传实时预览(HTML5实现 无需服务器)HW.js
以上就是小编为大家带来的jQuery监听文件上传实现进度条效果的方法全部内容了,希望大家多多支持脚本之家~
jquery+thinkphp实现跨域抓取数据的方法
jQuery的 $.ajax防止重复提交的两种方法(推荐)
jQuery progressbar通过Ajax请求实现后台进度实时功能
jQuery继承extend用法详解
浅谈jquery中使用canvas的问题
a标签跳转到指定div,jquery添加和移除class属性的实现方法
jQuery验证手机号邮箱身份证的正则表达式(含港澳台)
Jquery AJAX POST与GET之间的区别详细介绍
给XMLHttpRequest对象的upload属性绑定onprogress方法监听上传过程
var xhr=new XMLHttpRequest(); xhr.upload.onprogress=function(e){}
因为jQuery默认使用的XMLHttpRequest对象是内部生成的无法直接给jq的xhr绑定onprogress方法
所以只要给jQuery重新生成一个绑定了onprogress的XMLHttpRequest对象即可实现
首先封装一个方法 传入一个监听函数 返回一个绑定了监听函数的XMLHttpRequest对象
var xhrOnProgress=function(fun) { xhrOnProgress.onprogress = fun; //绑定监听 //使用闭包实现监听绑 return function() { //通过$.ajaxSettings.xhr();获得XMLHttpRequest对象 var xhr = $.ajaxSettings.xhr(); //判断监听函数是否为函数 if (typeof xhrOnProgress.onprogress !== 'function') return xhr; //如果有监听函数并且xhr对象支持绑定时就把监听函数绑定上去 if (xhrOnProgress.onprogress && xhr.upload) { xhr.upload.onprogress = xhrOnProgress.onprogress; } return xhr; } }
上传时使用$.ajax方法
$.ajax({ url: url, type: 'POST', xhr:xhrOnProgress(function(e){ var percent=e.loaded / e.total;//计算百分比 }) });
使用HW.js文件上传工具 自带进度条效果 支持绑定自定义监听函数,支持上传实时预览(HTML5实现 无需服务器)HW.js
<div id="cover" class="HW_upload">请选择要上传的文件</div> <script> var upload= new HW.Widget.upload.Create({ target:'#cover',//指定上传控件 url:"/upload.php",//上传地址 //设置允许上传的文件大小 单位为kb 默认为 4096 maxSize:2048, //开启多文件上传 mult:false, //设置上传按钮的文字 uploadText:'请选择要上传的文件', //设置上传超时限制 单位为分钟 默认为20分钟 timeout:20, //设置允许上传的文件类型 默认为['png','jpg','jpeg'] // accept:['jpg'], //设置文件上传参数名 默认为HW_upload_input inputName:'cover', //设置控件为图片上传 默认为true 为false时则不开启文件预览 isImage:true, //自定义文件检查函数 默认检测文件大小 类型 // fileCheck:function(file){return true;}, viewSize:[500,300],//设置图片预览框宽高 默认为400,300 viewImageWidth:70,//设置预览图片宽度默认为80 done:function(data){ alert(data);//获得上传结束后服务器返回的数据 } });
以上就是小编为大家带来的jQuery监听文件上传实现进度条效果的方法全部内容了,希望大家多多支持脚本之家~
您可能感兴趣的文章:
Jquery AJAX POST与GET之间的区别jquery+thinkphp实现跨域抓取数据的方法
jQuery的 $.ajax防止重复提交的两种方法(推荐)
jQuery progressbar通过Ajax请求实现后台进度实时功能
jQuery继承extend用法详解
浅谈jquery中使用canvas的问题
a标签跳转到指定div,jquery添加和移除class属性的实现方法
jQuery验证手机号邮箱身份证的正则表达式(含港澳台)
Jquery AJAX POST与GET之间的区别详细介绍
相关文章推荐
- jQuery监听文件上传实现进度条效果的方法
- jQuery监听文件上传实现进度条效果
- jQuery实现简单的文件上传进度条效果
- jQuery监听文件上传实现进度条效果
- jQuery监听文件上传实现进度条效果
- jQuery实现简单的文件上传进度条效果
- jQuery监听文件上传实现进度条效果
- jquery.MultiFile实现的多文件上传,只把待上传的文件名以列表展示在客户端并不上传的方法 .
- Android网络编程之使用HttpClient批量上传文件(二)AsyncTask+HttpClient并实现上传进度监听
- PHP文件上传进度条完整程序实现 jQuery Ajax apc
- Commons Fileupload+Servlet+JQuery实现文件上传进度条
- jQuery插件ajaxFileUpload实现异步上传文件效果
- OkHttp学习(3)-->>同步、异步之上传文件至服务器(重写RequestBody方法,实现上传进度接口回调)
- Django+Jquery+Bootstrap Modal+Iframe使用异步机制上传文件实现方法
- jQuery与Servlet实现文件上传与获取上传进度
- 在jQuery 1.5+ 的jqXHR上监听文件上传进度(xhr.upload)
- jQuery实现上传进度条效果
- Spring MVC 监听文件上传进度,实现上传进度条
- Android网络编程之使用HttpClient批量上传文件(二)AsyncTask+HttpClient并实现上传进度监听
- jQuery结合C#实现上传文件的方法