我试图获取存储在数组中的1559个文件的sha-1。 为此,我使用库jsSHA实现了以下例程:
for (var i=0; i<_files.length; i++){
(function(file, i) {
var reader = new FileReader();
reader.onload = function () {
try {
var raw_content = reader.result;
var actual_contents = raw_content.slice(raw_content.indexOf(',') + 1);
var shaObj = new jsSHA("SHA-1", "B64");
shaObj.update(actual_contents);
var file_hash = shaObj.getHash("HEX");
console.log("File " + i + " hashed.");
file.file_hash = file_hash;
}
catch (e){
console.log("File " + i + "failed");
console.log(e);
console.log(file);
}
};
reader.readAsDataURL(file);
})(_files[i], i);
}
我的问题是循环仅适用于前995个元素。从元素996开始失败,它返回给我错误&#34;错误:base-64字符串中的字符无效&#34;
我知道这个问题可能与我尝试阅读文件的方式有关,而不是与jsSHA库有关,但是有人可能会在我的脑海中产生一些亮点。对我有帮助。