使用原生js读取文件MD5
时间: 2023-08-20 15:14:36 浏览: 280
JavaScript本身并没有提供计算文件MD5的API,但可以通过引入第三方库来实现该功能。以下是使用第三方库spark-md5计算文件MD5的示例代码:
```javascript
// 引入spark-md5库
import SparkMD5 from 'spark-md5';
// 读取文件内容并计算MD5
function calculateMD5(file) {
return new Promise((resolve, reject) => {
let fileReader = new FileReader();
let spark = new SparkMD5.ArrayBuffer();
fileReader.onload = function() {
spark.append(fileReader.result);
let hash = spark.end();
resolve(hash);
};
fileReader.onerror = function() {
reject(fileReader.error);
};
fileReader.readAsArrayBuffer(file);
});
}
// 读取文件并计算MD5
let fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', function() {
let file = fileInput.files[0];
calculateMD5(file).then(hash => {
console.log(hash);
}).catch(error => {
console.error(error);
});
});
```
在上述代码中,我们首先使用ES6的import语法引入了spark-md5库。接着,定义了一个calculateMD5()函数,用于读取文件内容并计算MD5。
在calculateMD5()函数中,我们首先创建了一个FileReader对象,并且定义了onload事件处理函数。当文件读取完成后,该事件处理函数会被调用。
接着,我们使用spark-md5库创建了一个SparkMD5.ArrayBuffer对象,并将读取到的文件内容追加到该对象中。最后,调用SparkMD5.ArrayBuffer对象的end()方法来计算文件的MD5值。
需要注意的是,由于文件读取是异步操作,因此calculateMD5()函数返回一个Promise对象,可以使用then()方法来获取计算出的MD5值。
最后,在文件选择框的change事件处理函数中,我们调用了calculateMD5()函数来计算文件的MD5,并将结果输出到控制台中。
阅读全文