关于vue加element-ui上传文件获取文件的sha256的值 第二篇 更改压缩包编码错误
这个依然需要插件crypto-js
首先下载引入
话不多说直接上代码,首先是element的上传
<el-upload
class="upload-demo"
drag
:http-request="calculate"
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>
其次定义方法
function hashFileInternal(file, alog) {
// 指定块的大小,这里设置为20MB,可以根据实际情况进行配置
const chunkSize = 2000 * 1024 * 1024;
let promise = Promise.resolve();
// 使用promise来串联hash计算的顺序。因为FileReader是在事件中处理文件内容的,必须要通过某种机制来保证update的顺序是文件正确的顺序
for (let index = 0; index < file.size; index += chunkSize) {
promise = promise.then(() =>
hashBlob(file.slice(index, index + chunkSize))
);
}
/**
* 更新文件块的hash值
*/
function hashBlob(blob) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = ({ target }) => {
const wordArray = CryptoJs.lib.WordArray.create(target.result);
// 增量更新计算结果
alog.update(wordArray);
resolve();
};
reader.readAsArrayBuffer(blob);
});
}
// 使用promise返回最终的计算结果
return promise.then(() => encHex.stringify(alog.finalize()));
}
// 同时计算文件的sha256和md5,并使用promise返回
return Promise.all([
hashFileInternal(file, CryptoJs.algo.SHA256.create()),
hashFileInternal(file, CryptoJs.algo.MD5.create()),
]).then(([sha256, md5]) => {
this.filehash = sha256;
});
},
最后调用方法
calculate(param) {
this.hashFile(param.file).then();
},
然后就成功解决了压缩包编码错误
关于vue加element-ui上传文件获取文件的sha256的值 第二篇 更改压缩包编码错误的更多相关文章
- element ui 上传文件,读取内容乱码解决
element ui 上传文件,读取内容乱码解决: 加第二个参数 reader.readAsText(file.raw,'gb2312'); <el-upload class="upl ...
- Element ui 上传文件组件(单文件上传) 点击提交 没反应
element ui 第一次上传文件后 上传其他文件再次点击不再次提交 需要使用 clearFiles 清空已上传文件列表 这时候在次点击 上传按钮 就会惊喜的发现 可以上传了使用方法 this.$r ...
- element UI 上传文件成功后 - 清空文件
request({ url: '/jiekou', method: 'post', data }).then(res => { this.$message({ type: 'success', ...
- vue element ui 上传 请求接口
在页面上 http-request: 覆盖默认的上传行为,可以自定义上传的实现 <el-upload class="avatar-uploader" action=&qu ...
- vue中element 的上传功能
element 的上传功能 最近有个需求,需要在上传文件前,可以进行弹窗控制是否上传upload 看完文档后,感觉有两种思路可以实现 基于before-upload :上传文件之前的钩子,参数为上传的 ...
- element upload上传前对文件专门bs64上传
<!-- 文件上传 --> <template> <section class="file-upload"> <p class=" ...
- C#WPF做FTP上传下载获取文件列表
Xaml.cs: using Microsoft.Win32;using System;using System.Collections.Generic;using System.IO;using S ...
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名 .
平时根本没时间搞FTP什么的,现在这个项目需要搞FTP,为什么呢,我给大家说下项目背景,我们的一个应用程序上需要上传图片,但是用户部署程序的服务器上不让上传任何东西,给了我们一个FTP账号和密码,让我 ...
- vue实现图片的上传和删除
目录 1 UI库使用ElementUI 2 后端使用Express + formidable模块 1 UI库使用ElementUI 安装ElementUI $ npm install --save-d ...
- SpringBoot 整合文件上传 elment Ui 上传组件
SpringBoot 整合文件上传 elment Ui 上传组件 本文章记录 自己学习使用 侵权必删! 前端代码 博主最近在学 elment Ui 所以 前端使用 elmentUi 的 upload ...
随机推荐
- 批处理-- 查询进程,杀进程,启动pythond程序,任务计划程序
@echo off wmic process where caption="python.exe" get processid,commandline | findstr &quo ...
- 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现六
一.前言介绍: 1.1 项目摘要 随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势.传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速.便捷需求.这些问题不 ...
- 推荐7款程序员常用的API管理工具
前言 现如今API接口的编写与调试已成为开发人员不可或缺的技能,工欲善其事,必先利其器,选择一款优秀的API管理工具显得尤为重要.本文大姚给大家推荐7款程序员常用的API管理工具,大家可以根据自身和团 ...
- 低功耗4G模组:tcs3472颜色传感器示例
今天我们学习合宙低功耗4G模组Air780EP的LuatOS开发tcs3472示例,文末[阅读原文]获取最新资料1 一.简介 tcs3472颜色传感器能够读取照射到的物体的RGB三种数值,从而识别 ...
- PbRL | Christiano 2017 年的开山之作,以及 Preference PPO / PrefPPO
PrefPPO 首次(?)出现在 PEBBLE,作为 pebble 的一个 baseline,是用 PPO 复现 Christiano et al. (2017) 的 PbRL 算法. For eva ...
- json编码格式化美化
有时候你想存储一个json到文件中,然后让别人调用或者读取或者作为临时存储,诸如此类. 但是php json_encode后数据是压缩的没有格式化,导致读起来有点费劲. 所以你可以这样(php 5.4 ...
- OpenTelemetry 101:面向 IT 领导者和爱好者的非技术指南
如果您从事软件开发. SRE或DevOps工作,您可能听说过可观察性.遥测和跟踪等术语.这些概念对于理解应用程序在生产环境中的行为至关重要,并且它们是现代软件开发实践的重要组成部分. 您可能还听说过在 ...
- oracle查询某个sql语句客户端ip地址
1. 背景 业务出现异常后,或者某个sql导致系统卡顿.需要问题后需要溯源,需要获取这个sql是在哪个客户端的IP发起的. 2. cs架构 客户端直接连接数据库,可以很方便查询,采用通过sql_id找 ...
- 裸辞一年狂肝了一个AI搜索!我要硬刚Google和Perplexity!
Hika AI 是一款 AI 加持的「知识搜索工具」,它主要的目的是帮助你在搜索问题时通过Hika的「不同视角的思路」,为你快速延伸问题相关的知识领域,或者深挖问题中某个关键点,获得更加全面的结果. ...
- 给我2分钟,保证教会你在Vue3中实现一个定高的虚拟列表
前言 虚拟列表对于大部分一线开发同学来说是一点都不陌生的东西了,有的同学是直接使用第三方组件.但是面试时如果你简历上面写了虚拟列表,却给面试官说是通过三方组件实现的,此时空气可能都凝固了.所以这篇文章 ...