|
@@ -5,6 +5,7 @@ import AES from 'crypto-js/aes';
|
|
|
import SHA1 from 'crypto-js/sha1';
|
|
|
import MD5 from 'crypto-js/md5';
|
|
|
import { cookie } from '@/utils/tool';
|
|
|
+import SparkMD5 from 'spark-md5';
|
|
|
|
|
|
if (!cookie.get('deviceId')) {
|
|
|
cookie.set('deviceId', MD5(Math.random() + '-' + Date.now()));
|
|
@@ -60,16 +61,37 @@ export const getMD5 = (content) => {
|
|
|
return MD5(content);
|
|
|
};
|
|
|
|
|
|
-export const getFileMD5 = (file) => {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- const reader = new FileReader();
|
|
|
- reader.onloadend = function () {
|
|
|
- const arrayBuffer = reader.result;
|
|
|
- resolve(MD5(arrayBuffer).toString());
|
|
|
+// export const getFileMD5 = (file) => {
|
|
|
+// return new Promise((resolve, reject) => {
|
|
|
+// const reader = new FileReader();
|
|
|
+// reader.onloadend = function () {
|
|
|
+// const arrayBuffer = reader.result;
|
|
|
+// resolve(MD5(arrayBuffer).toString());
|
|
|
+// };
|
|
|
+// reader.onerror = function (err) {
|
|
|
+// reject(err);
|
|
|
+// };
|
|
|
+// reader.readAsArrayBuffer(file);
|
|
|
+// });
|
|
|
+// };
|
|
|
+
|
|
|
+export const getFileMD5 = (dataFile) => {
|
|
|
+ return new Promise((rs, rj) => {
|
|
|
+ var fileReader = new FileReader();
|
|
|
+ var spark = new SparkMD5(); //创建md5对象(基于SparkMD5)
|
|
|
+ if (dataFile.size > 1024 * 1024 * 10) {
|
|
|
+ var data1 = dataFile.slice(0, 1024 * 1024 * 10); //将文件进行分块 file.slice(start,length)
|
|
|
+ fileReader.readAsBinaryString(data1); //将文件读取为二进制码
|
|
|
+ } else {
|
|
|
+ fileReader.readAsBinaryString(dataFile);
|
|
|
+ }
|
|
|
+ fileReader.onload = function (e) {
|
|
|
+ spark.appendBinary(e.target.result);
|
|
|
+ var md5 = spark.end();
|
|
|
+ rs(md5);
|
|
|
};
|
|
|
- reader.onerror = function (err) {
|
|
|
- reject(err);
|
|
|
+ fileReader.onerror = function (err) {
|
|
|
+ rj(err);
|
|
|
};
|
|
|
- reader.readAsArrayBuffer(file);
|
|
|
});
|
|
|
};
|