fix: guest upload >5 files. change: chunk size change with speed, operate box in middle.
parent
1737477aed
commit
7e4bf448e3
|
@ -941,7 +941,9 @@
|
||||||
} else {
|
} else {
|
||||||
filemd5 = spark.end();
|
filemd5 = spark.end();
|
||||||
td2.innerHTML='md5: '+filemd5;
|
td2.innerHTML='md5: '+filemd5;
|
||||||
|
delete uploading[upbigfilename];
|
||||||
upbigfilename = filemd5+ext;
|
upbigfilename = filemd5+ext;
|
||||||
|
uploading[upbigfilename] = i;
|
||||||
<!--GuestEnd-->
|
<!--GuestEnd-->
|
||||||
td2.innerHTML='<!--constStr@GetUploadLink--> ...';
|
td2.innerHTML='<!--constStr@GetUploadLink--> ...';
|
||||||
var xhr1 = new XMLHttpRequest();
|
var xhr1 = new XMLHttpRequest();
|
||||||
|
@ -1005,6 +1007,7 @@
|
||||||
var newstartsize = 0;
|
var newstartsize = 0;
|
||||||
if(!!file){
|
if(!!file){
|
||||||
var asize=0;
|
var asize=0;
|
||||||
|
var chunksize=10*1024*1024; // chunk size, max 60M. 每小块上传大小,最大60M,微软建议10M
|
||||||
var totalsize=file.size;
|
var totalsize=file.size;
|
||||||
var xhr2 = new XMLHttpRequest();
|
var xhr2 = new XMLHttpRequest();
|
||||||
xhr2.open("GET", url);
|
xhr2.open("GET", url);
|
||||||
|
@ -1022,8 +1025,6 @@
|
||||||
} else {
|
} else {
|
||||||
StartStr='<!--constStr@LastUpload-->'+size_format(newstartsize)+ '<br><!--constStr@ThisTime--><!--constStr@UploadStartAt-->:' +StartTime.toLocaleString()+'<br>' ;
|
StartStr='<!--constStr@LastUpload-->'+size_format(newstartsize)+ '<br><!--constStr@ThisTime--><!--constStr@UploadStartAt-->:' +StartTime.toLocaleString()+'<br>' ;
|
||||||
}
|
}
|
||||||
var chunksize=5*1024*1024; // chunk size, max 60M. 每小块上传大小,最大60M,微软建议10M
|
|
||||||
if (totalsize>200*1024*1024) chunksize=10*1024*1024;
|
|
||||||
function readblob(start) {
|
function readblob(start) {
|
||||||
var end=start+chunksize;
|
var end=start+chunksize;
|
||||||
var blob = file.slice(start,end);
|
var blob = file.slice(start,end);
|
||||||
|
@ -1033,6 +1034,7 @@
|
||||||
|
|
||||||
reader.onload = function(e){
|
reader.onload = function(e){
|
||||||
var binary = this.result;
|
var binary = this.result;
|
||||||
|
var lastCurrentSpeed;
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.open("PUT", url, true);
|
xhr.open("PUT", url, true);
|
||||||
//xhr.setRequestHeader('x-requested-with','XMLHttpRequest');
|
//xhr.setRequestHeader('x-requested-with','XMLHttpRequest');
|
||||||
|
@ -1040,9 +1042,10 @@
|
||||||
xhr.setRequestHeader('Content-Range', 'bytes ' + asize + '-' + bsize +'/'+ totalsize);
|
xhr.setRequestHeader('Content-Range', 'bytes ' + asize + '-' + bsize +'/'+ totalsize);
|
||||||
xhr.upload.onprogress = function(e){
|
xhr.upload.onprogress = function(e){
|
||||||
if (e.lengthComputable) {
|
if (e.lengthComputable) {
|
||||||
var tmptime = new Date();
|
let tmptime = new Date();
|
||||||
var tmpspeed = e.loaded*1000/(tmptime.getTime()-C_starttime.getTime());
|
let tmpspeed = e.loaded*1000/(tmptime.getTime()-C_starttime.getTime());
|
||||||
var remaintime = (totalsize-asize-e.loaded)/tmpspeed;
|
lastCurrentSpeed = tmpspeed;
|
||||||
|
let remaintime = (totalsize-asize-e.loaded)/tmpspeed;
|
||||||
label.innerHTML=StartStr+'<!--constStr@Upload--> ' +size_format(asize+e.loaded)+ ' / '+size_format(totalsize) + ' = ' + ((asize+e.loaded)*100/totalsize).toFixed(2) + '% <!--constStr@AverageSpeed-->:'+size_format((asize+e.loaded-newstartsize)*1000/(tmptime.getTime()-StartTime.getTime()))+'/s<br><!--constStr@CurrentSpeed--> '+size_format(tmpspeed)+'/s <!--constStr@Expect--> '+seconds2hour(remaintime.toFixed(1));
|
label.innerHTML=StartStr+'<!--constStr@Upload--> ' +size_format(asize+e.loaded)+ ' / '+size_format(totalsize) + ' = ' + ((asize+e.loaded)*100/totalsize).toFixed(2) + '% <!--constStr@AverageSpeed-->:'+size_format((asize+e.loaded-newstartsize)*1000/(tmptime.getTime()-StartTime.getTime()))+'/s<br><!--constStr@CurrentSpeed--> '+size_format(tmpspeed)+'/s <!--constStr@Expect--> '+seconds2hour(remaintime.toFixed(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1086,6 +1089,9 @@
|
||||||
} else {
|
} else {
|
||||||
var a=response['nextExpectedRanges'][0];
|
var a=response['nextExpectedRanges'][0];
|
||||||
asize=Number( a.slice(0,a.indexOf("-")) );
|
asize=Number( a.slice(0,a.indexOf("-")) );
|
||||||
|
chunksize = 10*1024*1024;
|
||||||
|
if (lastCurrentSpeed>5*1024*1024) chunksize = 20*1024*1024;
|
||||||
|
if (lastCurrentSpeed>10*1024*1024) chunksize = 50*1024*1024;
|
||||||
readblob(asize);
|
readblob(asize);
|
||||||
}
|
}
|
||||||
} } else readblob(asize);
|
} } else readblob(asize);
|
||||||
|
@ -1158,7 +1164,6 @@
|
||||||
uploading[upbigfilename] = [i];
|
uploading[upbigfilename] = [i];
|
||||||
var spark = sha1.create();
|
var spark = sha1.create();
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
var chunksize=10*1024*1024;
|
|
||||||
var asize = 0;
|
var asize = 0;
|
||||||
var filesha1;
|
var filesha1;
|
||||||
function readblob(start) {
|
function readblob(start) {
|
||||||
|
@ -1479,15 +1484,15 @@
|
||||||
document.getElementById(action + '_fileid').value=fileid;
|
document.getElementById(action + '_fileid').value=fileid;
|
||||||
document.getElementById(action + '_hidden').value=str;
|
document.getElementById(action + '_hidden').value=str;
|
||||||
if (action=='rename') document.getElementById(action + '_input').value=str;
|
if (action=='rename') document.getElementById(action + '_input').value=str;
|
||||||
var $e = event || window.event;
|
/*var $e = event || window.event;
|
||||||
var $scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
|
var $scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;*/
|
||||||
var $scrollY = document.documentElement.scrollTop || document.body.scrollTop;
|
var $scrollY = document.documentElement.scrollTop || document.body.scrollTop;
|
||||||
var $x = $e.pageX || $e.clientX + $scrollX;
|
/*var $x = $e.pageX || $e.clientX + $scrollX;
|
||||||
var $y = $e.pageY || $e.clientY + $scrollY;
|
var $y = $e.pageY || $e.clientY + $scrollY;
|
||||||
if (action=='create') {
|
if (action=='create') {*/
|
||||||
document.getElementById(action + '_div').style.left=(document.body.clientWidth-document.getElementById(action + '_div').offsetWidth)/2 +'px';
|
document.getElementById(action + '_div').style.left=(document.body.clientWidth-document.getElementById(action + '_div').offsetWidth)/2 +'px';
|
||||||
document.getElementById(action + '_div').style.top=(window.innerHeight-document.getElementById(action + '_div').offsetHeight)/2+$scrollY +'px';
|
document.getElementById(action + '_div').style.top=(window.innerHeight-document.getElementById(action + '_div').offsetHeight)/2+$scrollY +'px';
|
||||||
} else {
|
/*} else {
|
||||||
if ($x + document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
|
if ($x + document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
|
||||||
if (document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
|
if (document.getElementById(action + '_div').offsetWidth > document.body.clientWidth) {
|
||||||
document.getElementById(action + '_div').offsetWidth=document.body.clientWidth+'px';
|
document.getElementById(action + '_div').offsetWidth=document.body.clientWidth+'px';
|
||||||
|
@ -1499,7 +1504,7 @@
|
||||||
document.getElementById(action + '_div').style.left=$x+'px';
|
document.getElementById(action + '_div').style.left=$x+'px';
|
||||||
}
|
}
|
||||||
document.getElementById(action + '_div').style.top=$y+'px';
|
document.getElementById(action + '_div').style.top=$y+'px';
|
||||||
}
|
}*/
|
||||||
document.getElementById(action + '_input').focus();
|
document.getElementById(action + '_input').focus();
|
||||||
}
|
}
|
||||||
function submit_operate(str) {
|
function submit_operate(str) {
|
||||||
|
|
Loading…
Reference in New Issue