如何使用javascript校验要上传的文件? [英] How to checksum the file to be uploaded with javascript?

查看:153
本文介绍了如何使用javascript校验要上传的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to checksum the files at browser side before uploading, then checksum and compare at server side to make sure the consistent. But how can I get the pure binary data of the file and checksum it? I tried the way below, but doesn't work:

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)


推荐答案

您正在使用的库似乎只支持字符串输入。
查找库支持二进制输入。例如。 js-sha1 。你应该在回调中哈希它。

The library you are using seems to support string input only. Find a library support binary input. Eg. js-sha1. And you should hash it in the callback.

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

这篇关于如何使用javascript校验要上传的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆