如何使用javascript检查要上传的文件?

Sug*_*uge 2 javascript checksum sha1 consistent-hashing

我想在上传之前在浏览器端对文件进行校验和,然后在服务器端进行校验和比较,以确保一致性。但是,如何获取文件的纯二进制数据并对其进行校验和?我尝试了下面的方法,但是不起作用:

let fileSelect = document.getElementById('file')
let files = fileSelect.files
let file = files[0]

var r = new FileReader();
r.onload = function(){ console.log(r.result); };
r.readAsArrayBuffer(file);
var file_sha1 = sha1(r.result)
Run Code Online (Sandbox Code Playgroud)

emn*_*178 6

您正在使用的库似乎仅支持字符串输入。查找支持二进制输入的库。例如。js-sha1。并且您应该在回调中对其进行哈希处理。

var reader = new FileReader();
reader.onload = function (event) {
  var file_sha1 = sha1(event.target.result)
};
reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)