上传文件ajax读取进度总是只能直接100%,下面结果说明监听器是可以正常取得值得,就是ajax无法异步取得大小而是最后才取得。ajax代码在下面
update34370;51925;1
update37895;51925;1
update41949;51925;1
update45474;51925;1
update49528;51925;1
update51925;51925;1
1.0,100%
ajax代码
var formData = new FormData($( "#showDataForm" )[0]);
$.ajax({
url: "FileUpload",
type: 'POST',
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
if(tag=true){
timer = window.setInterval("refresh()", 100);//每隔100毫秒执行callback
}
},
error: function (returndata) {
}
});
}
function refresh(){
//alert("ss");
$.ajax({
url:"FileState",
dataType:"text",
success:function callback(data){
//alert(data);
if(data=="100%"){
tag=false//停止标识
}
$("#progressbar").css("width",data);//更新进度
if(tag==false){
window.clearInterval(timer);//停止
}
}
});
}
文件都传完了才执行refresh,那不是就直接获取到最后100%的文件了,前面就没有执行。
放到文件上传外面,并且你的处理文件不能使用session之类会导致程序被挂起执行的代码,要不也会没有效果。