js读取文件的MD5值

3,671 阅读2分钟

这个网络很多教程,我使用的是VUE,就是你选择文件按钮选择文件(各种格式,含APK),然后读取该文件的MD5值。非常简单。

当然你也可用用在加密算法。

下载插件(参考):github.com/forsigner/b…

这下载插件不好使,建议使用npm安装方式:

d:该项目路径下 > npm i browser-md5-file -S

我们的按钮选择的是element格式,你可用使用原生的,但注意读取文件时的区别,参考:blog.csdn.net/bbs11007/ar…

el按钮样式:


<el-button 
   slot="trigger" 
   size="small" 
   type="primary"
   :on-change="importFile" 
>
选取文件
</el-button>

我们点击选择按钮文件后,选择引用

import BMF from 'browser-md5-file'; //这个使用npm

这个再github.com/forsigner/b…里面也写的很明白,也就是原生方式的写法,

const el = document.getElementById('upload');
const bmf = new BMF();

el.addEventListener('change', handle, false);//原生调用handle方法,监听选择的文件

function handle(e) {
  const file = e.target.files[0];
  bmf.md5(
    file,
    (err, md5) => {
      console.log('err:', err);
      console.log('md5 string:', md5); // 97027eb624f85892c69c4bcec8ab0f11
    },
    progress => {
      console.log('progress number:', progress);
    },
  );
}

 

但是我这里是VUE写法,需要修改我自己要的,因为我们选择文件时时:on-change="importFile,就是再监听你选择的文件:

 importFile(file,fileList){//选择文件按钮

            // var objFile = document.getElementById('appPush').files[0];//原生按钮获取文件内容对象
            var objFile = file.raw;//element按钮获取

            //验证该文件格式是否是apk,你可用设置其他的方式
            var objStr = /\.(apk)$/; //文件类型正则验证
              if(!objStr.test(objFile.name)){
                this.$alert('请选择正确的APK!', '警告', {
                        confirmButtonText: '确定',
                  });
                return false;
              }
            
             //MD5的实现方式
             const bmf = new BMF();
            //  const el = document.getElementById('upload');
            //  el.addEventListener('change', handle, false);//VUE使用这个会报错
            bmf.md5(
                objFile,
                (err, md5) => {
                     console.log('err:', err);

                      // 97027eb624f85892c69c4bcec8ab0f11
                     console.log('这个文件MD5的值是:', md5); 
                },
                progress => {
                    console.log('progress number:', progress);
                },
            );      

              t
        },

所以得出的文件MD5的值是:97027eb624f85892c69c4bcec8ab0f11