fix: not encode file name. fix: sha1 big file.

pull/276/head
qkqpttgf 2021-03-13 13:47:46 +08:00 committed by GitHub
parent 119ac5280d
commit 377a9f8aaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 74 additions and 58 deletions

View File

@ -954,7 +954,7 @@
getuplink(i); getuplink(i);
} }
} }
xhr1.send('upbigfilename='+ encodeURIComponent(upbigfilename) +'&filesize='+ file.size +'&filelastModified='+ file.lastModified +'&filemd5='+ filemd5); xhr1.send('upbigfilename='+ upbigfilename +'&filesize='+ file.size +'&filelastModified='+ file.lastModified +'&filemd5='+ filemd5);
<!--GuestStart--> <!--GuestStart-->
} }
} }
@ -1111,12 +1111,28 @@
return; return;
}*/ }*/
var upbigfilename = encodeURIComponent((file.webkitRelativePath||file.name)); var upbigfilename = encodeURIComponent((file.webkitRelativePath||file.name));
var spark = sha1.create();
var reader = new FileReader(); var reader = new FileReader();
reader.onprogress = function(e) { var chunksize=10*1024*1024;
td2.innerText = '计算SHA1... ' + (e.loaded*100/file.size).toFixed(2) + " %"; var asize = 0;
var filesha1;
function readblob(start) {
var end=start+chunksize;
var blob = file.slice(start,end);
reader.readAsArrayBuffer(blob);
} }
reader.onload = function(e) { readblob(asize);
var filesha1 = sha1(this.result);
reader.onload = function(e){
td2.innerHTML='<!--constStr@Calculate--> SHA1: '+(asize*100/file.size).toFixed(2)+'%';
var binary = this.result;
spark.update(binary);
asize += chunksize;
if (asize < file.size) {
readblob(asize);
} else {
filesha1 = spark.hex();
td2.innerHTML='SHA1: ' + filesha1;
<!--GuestStart--> <!--GuestStart-->
function getext(str) { function getext(str) {
let p = str.lastIndexOf('.'); let p = str.lastIndexOf('.');
@ -1170,10 +1186,10 @@
getuplink(i); getuplink(i);
} }
} }
xhr1.send('upbigfilename='+ encodeURIComponent(upbigfilename) +'&filesize='+ file.size +'&filelastModified='+ file.lastModified + '&filesha1=' + filesha1 + '&chunksize=' + chunksize); xhr1.send('upbigfilename='+ upbigfilename +'&filesize='+ file.size +'&filelastModified='+ file.lastModified + '&filesha1=' + filesha1 + '&chunksize=' + chunksize);
}
} }
} }
reader.readAsArrayBuffer(file);
} }
uploadbuttonshow(); uploadbuttonshow();
} }