1

使用最新的jQueryUploadify我使用onUploadProgress实现了一个进度条,效果很好。唯一的问题是,在上传期间从队列中删除文件时,totalBytesTotal 不会自行更新,这使我的进度条显示不正确的信息。

欢迎提出建议,解决方法。

顺便说一句:试过他们的论坛(垃圾邮件天堂,顺便说一句)似乎没有人有这样的问题。

$("#button_holder").uploadify({
    "onUploadProgress" : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal){
        pos = Math.round((totalBytesUploaded/totalBytesTotal)*100);
        kb = (totalBytesTotal /1024).toFixed(1);
        $("#progress_text").html("uploading "+ TotalFiles +" files.<br>"+ pos +"% of "+ kb +"kB done.<br>please wait.");
        $("#progress_bar").animate({"width" : pos +"%"},100);
    }
});
4

1 回答 1

0

对于遇到此问题的任何人,对我有用的技巧是使用onSelectonUploadError管理自定义 var(在我的情况下MyBytesTotal)以及队列中文件的总大小,并依赖此 var 而不是totalBytesTotalin onUploadProgress

$("#button_holder").uploadify({
    "onSelect" : function(file){
        MyFilesTotal++;
        MyBytesTotal = MyBytesTotal + file.size;
    },
    "onUploadProgress" : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal){
        pos = Math.round((totalBytesUploaded/MyBytesTotal)*100);
        kb = (MyBytesTotal /1024).toFixed(1);
        $("#progress_text").html("uploading "+ MyFilesTotal +" files.<br>"+ pos +"% of "+ kb +"kB done.<br>please wait.");
        $("#progress_bar").animate({"width" : pos +"%"},100);
    },
    "onUploadError" : function(file, errorCode, errorMsg, errorString){
        MyFilesTotal--;
        MyBytesTotal = MyBytesTotal - file.size;
    }
});

我最终没有使用MyFilesTotal. 无论我做什么,在删除其中一些文件后,它都不会在队列中保留正确数量的文件。也许还有另一种获取我不知道的信息的方法。

于 2013-03-08T01:56:36.757 回答