[英]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.