在untils 创建get-files-md5.js文件
import SparkMD5 from 'spark-md5'; export function createFileMd5(file: any) { // const spark = new SparkMD5(); return new Promise((resolve, reject) => { const fileReader = new FileReader(); // 开始读文件 fileReader.readAsBinaryString(file); // 文件读完之后,触发load事件 fileReader.onload = (e: any) => { // result是fileReader读到的部分 const result = e.target.result; // 如果读到的长度和文件长度一致,则读取成功 const isSuccess = file.size === result.length; // 读取成功,则生成MD5,扔出去。失败就报错 isSuccess ? resolve(SparkMD5.hashBinary(result)) : reject(new Error('读取出错了')); }; // 读取过程中出错也直接报错 fileReader.onerror = () => reject(new Error('读取出错了')); }); }
使用:
import { createFileMd5 } from '@/utils/get-files-md5'; createFileMd5(file.raw).then((md5) => { console.log(md5) });