当前位置: 首页 > news >正文

Vue中项目进行文件压缩与解压缩 (接口返回文件的url压缩包前端解析并展示出来,保存的时候在压缩后放到接口入参进行保存)

安装   npm install pako在Vue组件中引入pako:
import pako from 'pako';接口返回的url是这个字段 tableSsjsonUrl  其实打开就是压缩包const source = await tableFileUrl ({ id: this.$route.query.id}); if(source.code === 0) {this.titleName  = source.data.tableName}
if(source.code === 0 && source.data.tableSsjsonUrl) {const fileUrl = source.data.tableSsjsonUrlfetch(fileUrl, {headers: {'Cache-Control': 'no-cache'}}).then(response => response.blob()).then(blob => {const reader = new FileReader();reader.onload = () => {const compressedData = new Uint8Array(reader.result);const decompressedData = pako.ungzip(compressedData, { to: 'string' });this.spread.fromJSON(JSON.parse(decompressedData));};reader.readAsArrayBuffer(blob);}).catch(error => {console.error('Failed to fetch file:', error);});
}压缩传参如下let spreadJSON = JSON.stringify(this.spread.toJSON({ }));const uint8Array = new TextEncoder().encode(spreadJSON);// 进行gzip压缩const compressedData = pako.gzip(uint8Array);// 将压缩后的数据转换成Blob类型并下载// const blob = new Blob([compressedData], { type: 'application/gzip' });//     saveAs(blob, 'example.gz');// 创建FormData对象const formData = new FormData();// 将压缩后的数据作为FormData的一部分formData.append('file', new Blob([compressedData]));formData.append('id', this.$route.query.id);console.log(formData.get('file'), '9999999999')try {// designInfoUpdateconst res = await updateTableFileGzip(formData);if (res.code === 0) {this.$modal.msgSuccess('保存成功!')} else {// this.$modal.msgError15('保存失败!')}} catch (error) {// this.$modal.msgError15('保存失败!')}

参考链接  Vue中如何进行文件压缩与解压缩?_vue压缩文件_毕设徐师兄的博客-CSDN博客

http://www.lryc.cn/news/246769.html

相关文章:

  • Linux shell编程学习笔记31:alias 和 unalias 操作 命令别名
  • Django JSONField/HStoreField SQL注入漏洞(CVE-2019-14234)
  • Unity中Shader的Standard材质解析(一)
  • 5.1 Windows驱动开发:判断驱动加载状态
  • Linux之高级IO
  • 进程和线程的关系
  • YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器
  • 原生DOM事件、react16、17和Vue合成事件
  • 基于HTML+CSS+JavaScript的登录注册界面设计
  • BUUCTF [MRCTF2020]Ez_bypass 1
  • 基于Apache部署虚拟主机网站
  • 大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase
  • 手写字符识别神经网络项目总结
  • 八、Lua数组和迭代器
  • 平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖
  • 运算符展开、函数,对象,数组,字符串变化 集合
  • NI自动化测试系统用电必备攻略,电源规划大揭秘
  • ky10 server arm 在线编译安装openssl3.1.4
  • 外网IP和内网IP的区别
  • Jquery动画特效
  • Tableau连接到mysql数据库,配置驱动
  • HuggingFace学习笔记--AutoModel的使用
  • Kafka常见面试问题
  • 学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)
  • 一、TIDB基础
  • 【微软技术栈】使用新的C#功能减少内存分配
  • Linux shell编程学习笔记29:shell自带的 脚本调试 选项
  • 分享几个可以免费使用GPT的网站
  • 一. BEV感知算法介绍
  • Scala如何写一个通用的游戏数据爬虫程序