Javascript:使用jsSHA

时间:2016-06-02 10:09:42

标签: javascript loops filereader

我试图获取存储在数组中的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库有关,但是有人可能会在我的脑海中产生一些亮点。对我有帮助。

0 个答案:

没有答案