如何使用JavaScript对要上传的文件进行校验和?

3

在上传文件前,我希望能够在浏览器端对文件进行校验和计算,然后在服务器端进行比对以确保一致性。但是我该如何获取文件的纯二进制数据并计算其校验和呢?我尝试了下面这种方式,但没有成功:

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)

你的 sha1 函数是什么样的? - jayms
请查看此处的问题:https://dev59.com/JGQn5IYBdhLWcg3w36XV - Luo
@jayms,我使用这个npm库:https://www.npmjs.com/package/sha1 - Suge
1个回答

7

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接