import SparkMD5 from 'spark-md5'
/**
* 使用 spark-md5 生成文件MD5摘要
* @resolve {string} md5
*/
export async function MD5(file) {
return new Promise((resolve, reject) => {
const blobSlice =
File.prototype.slice ||
File.prototype.mozSlice ||
File.prototype.webkitSlice
const chunkSize = 2097152 // Read in chunks of 2MB
const chunks = Math.ceil(file.size / chunkSize)
const spark = new SparkMD5.ArrayBuffer()
const fileReader = new FileReader()
let currentChunk = 0
fileReader.onload = function(e) {
spark.append(e.target.result) // Append array buffer
currentChunk++
if (currentChunk < chunks) {
loadNext()
} else {
resolve(spark.end())
}
}
fileReader.onerror = function(e) {
reject(e)
}
function loadNext() {
const start = currentChunk * chunkSize
const end = start + chunkSize >= file.size ? file.size : start + chunkSize
fileReader.readAsArrayBuffer(blobSlice.call(file, start, end))
}
loadNext()
})
}
js计算md5
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在浏览器中使用js-spark-md5计算文件的MD5 最近开发一个视频系统,用户需要把文件上传到服务器。服务器再...
- 一篇纯代码的文章。更多的说明在代码中 代码是一个vue组件,但没有用到特殊的vue方法,仅仅是调试的时候用了它而已...
- 项目也快两年了,项目这么长时间下来经历了各种加解密算法,坑也踩过不少.现在把项目中使用过一些常用的加解密算法总结一...
- 今日学习 功能介绍 计算指定文件的md5值 爬取绿盟升级包名称和md5值,并生成excle 计算指定文件夹里的所有...