首先使用element的上传文件的组件

安装依赖crypto-js

npm i crypto-js
       <el-upload
class="upload-demo"
drag
:http-request="uploadCrt"
action=""
:limit='1'
:file-list="fileList"
:on-exceed='_change' >
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
</el-upload>

然后写方法

  uploadCrt(param) {

      let that = this;
var contractFile = param.file;
// console.log(contractFile)
var reader = new FileReader(),
self = this;
var blobSlice =
File.prototype.mozSlice ||
File.prototype.webkitSlice ||
File.prototype.slice;
var chunkSize = 6 * 1024 * 1024;
var chunks = Math.ceil(contractFile.size / chunkSize);
var currentChunk = 0;
var hasher = CryptoJS.algo.SHA256.create();
var start = currentChunk * chunkSize;
var end =
start + chunkSize >= contractFile.size
? contractFile.size
: start + chunkSize;
reader.readAsArrayBuffer(blobSlice.call(contractFile, start, end));
reader.onload = function (evt) {
var fileStr = evt.target.result;
var tmpWordArray = self.arrayBufferToWordArray(fileStr);
hasher.update(tmpWordArray);
currentChunk += 1;
fileStr = null;
tmpWordArray = null;
if (currentChunk < chunks) {
var start = currentChunk * chunkSize;
var end =
start + chunkSize >= contractFile.size
? contractFile.size
: start + chunkSize;
reader.readAsArrayBuffer(blobSlice.call(contractFile, start, end));
}
};
reader.onloadend = function () {
contractFile = null;
var hash = hasher.finalize();
hash.toString(); //计算结果
that.filehash = hash.toString();
console.log(that.filehash)
hasher = null;
blobSlice = null;
reader = null;
hash = null;
};
},
arrayBufferToWordArray(ab) {
var i8a = new Uint8Array(ab);
var a = [];
for (var i = 0; i < i8a.length; i += 4) {
a.push(
(i8a[i] << 24) | (i8a[i + 1] << 16) | (i8a[i + 2] << 8) | i8a[i + 3]
);
}
return CryptoJS.lib.WordArray.create(a, i8a.length);
},

  计算结果sha256的值

关于vue加element-ui上传文件获取文件的sha256的值的更多相关文章

  1. element ui 上传文件,读取内容乱码解决

    element ui 上传文件,读取内容乱码解决: 加第二个参数 reader.readAsText(file.raw,'gb2312'); <el-upload class="upl ...

  2. Element ui 上传文件组件(单文件上传) 点击提交 没反应

    element ui 第一次上传文件后 上传其他文件再次点击不再次提交 需要使用 clearFiles 清空已上传文件列表 这时候在次点击 上传按钮 就会惊喜的发现 可以上传了使用方法 this.$r ...

  3. element UI 上传文件成功后 - 清空文件

    request({ url: '/jiekou', method: 'post', data }).then(res => { this.$message({ type: 'success', ...

  4. vue element ui 上传 请求接口

    在页面上 http-request: 覆盖默认的上传行为,可以自定义上传的实现 <el-upload  class="avatar-uploader"  action=&qu ...

  5. vue中element 的上传功能

    element 的上传功能 最近有个需求,需要在上传文件前,可以进行弹窗控制是否上传upload 看完文档后,感觉有两种思路可以实现 基于before-upload :上传文件之前的钩子,参数为上传的 ...

  6. element upload上传前对文件专门bs64上传

    <!-- 文件上传 --> <template> <section class="file-upload"> <p class=" ...

  7. C#WPF做FTP上传下载获取文件列表

    Xaml.cs: using Microsoft.Win32;using System;using System.Collections.Generic;using System.IO;using S ...

  8. 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名 .

    平时根本没时间搞FTP什么的,现在这个项目需要搞FTP,为什么呢,我给大家说下项目背景,我们的一个应用程序上需要上传图片,但是用户部署程序的服务器上不让上传任何东西,给了我们一个FTP账号和密码,让我 ...

  9. vue实现图片的上传和删除

    目录 1 UI库使用ElementUI 2 后端使用Express + formidable模块 1 UI库使用ElementUI 安装ElementUI $ npm install --save-d ...

  10. SpringBoot 整合文件上传 elment Ui 上传组件

    SpringBoot 整合文件上传 elment Ui 上传组件 本文章记录 自己学习使用 侵权必删! 前端代码 博主最近在学 elment Ui 所以 前端使用 elmentUi 的 upload ...

随机推荐

  1. 一文彻底弄懂MySQL的各个存储引擎,InnoDB、MyISAM、Memory、CSV、Archive、Merge、Federated、NDB

    MySQL 中的存储引擎是其数据库管理系统的核心模块,用于处理不同类型的数据存储和检索操作.每种存储引擎都有自己的特点,适用于不同类型的应用场景.MySQL 最常用的存储引擎包括 InnoDB.MyI ...

  2. Solon Ioc 的魔法之注解注入器(也可叫虚空注入器)

    很多人惊叹于 Solon 的注入能力,一个注解怎可注万物??? 一.注解注入器 Solon Ioc 的四大魔法之一:注解注入器(BeanInjector<T extends Annotation ...

  3. 《HelloGitHub》第 103 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...

  4. AI赋能-《用ChatGPT做软件测试》新书上市

    图书链接京东: https://item.jd.com/10121763192532.html当当: http://product.dangdang.com/29797547.html内容简介本书以目 ...

  5. Hadoop习题汇总

    目录 选择 单选 多选 判断 填空 简答 选择 单选 查看HDFS系统版本的Shell命令,以下正确的是(). hdfs -ver hdfs version (答案) dfsadmin version ...

  6. 【2024.09.15】NOIP2024 赛前集训(2)

    [2024.09.15]NOIP2024 赛前集训(2) A 最大的难点戏剧性地变成了二叉搜索树是什么. 先根据已知序列把二叉树建出来,忘了二叉搜索树的移步 二叉搜索树 & 平衡树 - OI ...

  7. Python移除重复元素

    第一种写法:通过set特性去重,但是不保证顺序,无序的 a = ["1", 1, "1", 2] a = list(set(a)) print(a) 结果: [ ...

  8. Java中private方法能重写吗?

    问题:Java中private方法能重写吗? 下面是测试代码 public class A { private void print() { System.out.println("A&qu ...

  9. Java虚拟机类加载机制浅谈

    Java语言是一种编译后再经过解释器执行的过程, 解释器主要就是如何处理解释Class文件的二进制字节流.JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎. 虚拟机将描述类的数据从Clas ...

  10. Java方法参数太多怎么办—Part 1—自定义类型

    本文由 ImportNew - 王村平 翻译自 dzone.如需转载本文,请先参见文章末尾处的转载要求. 本文是这个系列的第一篇文章,介绍了采用自定义类型处理参数过多的问题.如果你也希望参与类似的系列 ...