美文网首页
获取文件的md5值

获取文件的md5值

作者: 470d98b91bd3 | 来源:发表于2019-06-20 17:10 被阅读0次

    此处我们需要用到一个spark-md5的js库类

    把他安装到我们项目中: npm install spark-md5 --save

    以下为我根据官方demo,改编成一个公用函数,并放到项目的crypto.util.js的文件,用来统一存放项目中需要用到的加密解密的方法

    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()
      })
    }
    

    使用的时候,只需要引入该方法,即:

    import { MD5 } from '~/plugins/utils/crypto.util.js'
    
    const md5 = await MD5(file)
    
    
    

    参考: spark-md5 npm官方地址

    相关文章

      网友评论

          本文标题:获取文件的md5值

          本文链接:https://www.haomeiwen.com/subject/ioujqctx.html