JonSmiths 2016-07-16 09:27 采纳率: 0%
浏览 989
已采纳

struts+ajax上传文件进度条的问题

上传文件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);//停止
}
}
});
}

  • 写回答

1条回答 默认 最新

  • 斯洛文尼亚旅游 2016-07-16 10:40
    关注

    文件都传完了才执行refresh,那不是就直接获取到最后100%的文件了,前面就没有执行。

    放到文件上传外面,并且你的处理文件不能使用session之类会导致程序被挂起执行的代码,要不也会没有效果。

    asp.net/asp网站浏览器打开一个长时间运行的页面同时打开其他页面为什么被挂起

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?