幽灵资源网 Design By www.bzswh.com
原理:
给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实现上传进度条
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。