Commit 16fc2df3 authored by 以墨为白's avatar 以墨为白 🎧

解析文件 md5

parent f7edba80
......@@ -3600,11 +3600,6 @@
}
}
},
"crypto-js": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"css-color-function": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz",
......@@ -7186,7 +7181,12 @@
"source-map": "^0.6.0"
}
},
"spdx-correct": {
"spark-md5": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/spark-md5/-/spark-md5-3.0.2.tgz",
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
},
"spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
"integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
......
......@@ -7,8 +7,6 @@ import ElementUI from 'element-ui'
import './element-variables.scss'
import "echarts-wordcloud/dist/echarts-wordcloud";
import "echarts-wordcloud/dist/echarts-wordcloud.min";
import fileMd5Sum from './util/file_md5.js';
Vue.prototype.fileMd5Sum = fileMd5Sum;
Vue.use(ElementUI)
new Vue({
router,
......
import CryptoJs from 'crypto-js' //引用AES源码js
export default {
// md5值计算
fileMd5Sum(file) {
let CryptoJS = require("crypto-js");
return new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.onloadend = ev => {
resolve({
md5: CryptoJS.MD5(CryptoJS.enc.Latin1.parse(ev.target.result)).toString(CryptoJS.enc.Hex),
file: file
import SparkMD5 from 'spark-md5'
// md5值计算
var fileMd5Sum = (file) => {
console.log(new Date().toDateString())
return new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.onloadend = evt => {
const spark = new SparkMD5.ArrayBuffer();
spark.append(evt.target.result);
const md5 = spark.end();
resolve({ md5, file });
};
fileReader.onerror = () => {
reject({ message: "文件解析失败" });
}
fileReader.readAsArrayBuffer(file);
});
}
const getFileChunk = (file, chunkSize) => {
const chunks = [];
const fileSize = file.size;
let currentChunkStart = 0;
while (currentChunkStart < fileSize) {
const chunkEnd = currentChunkStart + chunkSize;
const chunk = file.slice(currentChunkStart, chunkEnd);
chunks.push(chunk);
currentChunkStart = chunkEnd;
}
console.log("分片数量" + chunks.length);
return chunks;
};
const getFileMD5 = file => {
return new Promise((resolve, reject) => {
const chunkSize = 2097152; // 每次读取2MB.
const chunks = getFileChunk(file, chunkSize);
const spark = new SparkMD5.ArrayBuffer();
let currentChunkIndex = 0;
const loadNext = () => {
const reader = new FileReader();
reader.onload = e => {
console.log(currentChunkIndex);
currentChunkIndex++;
spark.append(e.target.result);
if (currentChunkIndex < chunks.length) {
loadNext();
} else {
const md5 = spark.end();
resolve({ md5, file });
}
);
};
fileReader.onerror = () => {
reject({ message: "文件解析失败" });
}
fileReader.readAsBinaryString(file);
});
}
reader.readAsArrayBuffer(chunks[currentChunkIndex]);
};
loadNext();
});
};
export {
fileMd5Sum,
getFileMD5
}
......@@ -299,6 +299,8 @@ import {
} from "../../util/http_util";
import { uuid } from "../../util/data_util";
import BigfileUpload from "../../components/common/bigfile_upload.vue";
import {fileMd5Sum, getFileMD5} from '../../util/file_md5.js';
export default {
data() {
return {
......@@ -762,7 +764,7 @@ export default {
let fd = new FormData();
load.text = "解析中";
this.fileMd5Sum.fileMd5Sum(this.form_add.fileList[0].raw)//获取md5
getFileMD5(this.form_add.fileList[0].raw)//获取md5
.then(result => {
fd.append("file", result.file);
fd.append("filename", result.md5);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment