簡體   English   中英

上傳切片文件時,如何防止進度條跳過?

[英]How to prevent progress bar from skipping when uploading a sliced file?

我正在使用XMLHttpRequest(); 循環上傳切片的文件。

function upload(blobOrFile, part, name, size) {
      var formdata = new FormData();
      var xhr = new XMLHttpRequest();
      ...
      var parallel_uploads=0;
 }

在該函數中,我使用以下代碼顯示進度條:

xhr.onreadystatechange = function () {
      if (xhr.readyState == 4) { 
          parallel_uploads = parallel_uploads + 1;                                                                        
      }
}
xhr.upload.addEventListener("progress", function (evt) {
      if (evt.lengthComputable) {
          var total_parts = Math.ceil(size / 209715);
          var cur_part = (evt.loaded / evt.total) / total_parts;
          var percentComplete = cur_part + parallel_uploads / total_parts;
          $('#bars progress').val(percentComplete);
      }
}, false);

有關xhr狀態的更多信息,請參見此處

進度條正在跳過,尤其是在上傳小文件時。 在Chrome中,它比Firefox中更明顯地向前和向后跳過。 我認為問題在於並行上傳的檢測出錯。 我嘗試了所有xhr狀態,但沒有任何效果。

那么如何從所有Blob中獲取正確數量的上載字節?

好吧,我使用了以下命令,以便在上傳小文件時不會跳過太多:

if(total_parts>20){
   //the code from above
}
else{                                                                            
   percentComplete = parallel_uploads / total_parts;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM