当前位置: 首页 > 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博客

相关文章:

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.tableNam…...

Linux shell编程学习笔记31:alias 和 unalias 操作 命令别名

目录 0 前言1 定义别名2 查看别名 2.1 查看所有别名2.2 查看某个别名 2.2.1 alias 别名2.2.2 alias | grep 别名字符串2.2.3 使用 CtrlAltE 组合键3 unalias:删除别名4 如何执行命令本身而非别名 4.1 方法1:使用 CtrlAltE 组合键 && unalias4…...

Django JSONField/HStoreField SQL注入漏洞(CVE-2019-14234)

漏洞描述 Django 于2019年8月1日 日发布了安全更新,修复了 JSONField 和 HStoreField 两个模型字段的 SQL 注入漏洞。 参考链接: Django security releases issued: 2.2.4, 2.1.11 and 1.11.23 | Weblog | DjangoDjango JSONField SQL注入漏洞&#x…...

Unity中Shader的Standard材质解析(一)

文章目录 前言一、在Unity中,按一下步骤准备1、在资源管理面板创建一个 Standard Surface Shader2、因为Standard Surface Shader有很多缺点,所以我们把他转化为顶点片元着色器3、整理只保留主平行光的Shader效果4、精简后的最终代码 前言 在Unity中&am…...

5.1 Windows驱动开发:判断驱动加载状态

在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息。 该功能实现的核心函数是NtQuerySys…...

Linux之高级IO

目录 IO基本概念五种IO模型钓鱼人例子五种IO模型高级IO重要概念同步通信 VS 异步通信阻塞 VS 非阻塞其他高级IO阻塞IO非阻塞IO IO基本概念 I/O(input/output)也就是输入和输出,在著名的冯诺依曼体系结构当中,将数据从输入设备拷贝…...

进程和线程的关系

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 进程&线程 1. 什么是进程PCB 2. 什么是…...

YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器

💡本篇内容:YOLOv5全网独家改进:NanoDet算法动态标签分配策略(附原创改进代码),公开数据集mAP有效涨点,来打造新颖YOLOv5检测器 💡🚀🚀🚀本博客 YOLOv5+ 改进NanoDet模型的动态标签分配策略源代码改进 💡一篇博客集成多种创新点改进:NanoDet 💡:重点:更…...

原生DOM事件、react16、17和Vue合成事件

目录 原生DOM事件 注册/绑定事件 DOM事件级别 DOM0:onclick传统注册: 唯一(同元素的(不)同事件会覆盖) 没有捕获和冒泡的,只有简单的事件绑定 DOM2:addEventListener监听注册:可添加多个…...

基于HTML+CSS+JavaScript的登录注册界面设计

一、界面效果: 二、HTML代码: 登录注册html: 登录成功html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>登录成功!</h1> </body> <…...

BUUCTF [MRCTF2020]Ez_bypass 1

题目环境&#xff1a;F12查看源代码 I put something in F12 for you include flag.php; $flagMRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}; if(isset($_GET[gg])&&isset($_GET[id])) { $id$_GET[id]; $gg$_GET[gg]; if (md5($id) md5($gg) && $id ! $gg) { …...

基于Apache部署虚拟主机网站

文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…...

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 &#xff08;必修、选修&#xff09; 必修 实验类型&#xff08;验证、设计、创新、综合&#xff09; 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…...

手写字符识别神经网络项目总结

1.数据集 手写字符数据集 DIGITS&#xff0c;该数据集的全称为 Pen-Based Recognition of Handwritten Digits Data Set&#xff0c;来源于 UCI 开放数据集网站。 2.加载数据集 import numpy as np from sklearn import datasets digits datasets.load_digits() 3.分割数…...

八、Lua数组和迭代器

一、Lua数组 数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;可以是一维数组和多维数组。 在 Lua 中&#xff0c;数组不是一种特定的数据类型&#xff0c;而是一种用来存储一组值的数据结构。 实际上&#xff0c;Lua 中并没有专门的数组类型&#xf…...

平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖

11 月 10 日&#xff0c;2023 金融街论坛年会同期举办了“第五届成方金融科技论坛——金融科技守正创新论坛”&#xff0c;北京金融产业联盟发布了“扬帆计划——分布式数据库金融应用研究与实践优秀成果”&#xff0c; 平凯星辰提报的实践报告——“国产 HTAP 数据库在金融规模…...

运算符展开、函数,对象,数组,字符串变化 集合

... 展开运算符 用于函数实参或者赋值号右边 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3 console.log(Math.max.apply(null, [1, 2, 3]))//3const o { a: 1, b: 2 }const obj { ...o, c: 3 }console.log(obj)//Object ... 剩余运算符 用于…...

NI自动化测试系统用电必备攻略,电源规划大揭秘

就像使用电脑之前需接通电源一样&#xff0c;自动化测试系统的电源选择也是首当其冲的问题&#xff0c;只不是这个问题更复杂。 比如&#xff0c;应考虑地理位置因素&#xff0c;因为不同国家或地区的公共电网所提供的线路功率有所不同。在电源布局和设备选型方面&#xff0c;有…...

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…...

外网IP和内网IP的区别

首先得先知道什么是ip地址&#xff0c;它就是唯一标识连接网络的设备的&#xff0c;即IP地址充当了设备在网络中的“住址”&#xff0c;使得设备能够相互通信和交换数据。 我们常听开发人员说外网内网&#xff0c;那么它们有什么区别呢&#xff1f; 外网可以理解为互联网&…...

记一次综合型流量分析 | 添柴不加火聪

核心摘要&#xff1a;这篇文章能帮你 ?? 1. 彻底搞懂条件分支与循环的适用场景&#xff0c;告别选择困难。 ?? 2. 掌握遍历DOM集合修改属性的标准姿势与性能窍门。 ?? 3. 识别流程控制中的常见“坑”&#xff0c;并学会如何优雅地绕过去。 ?? 主要内容脉络 ?? 一、痛…...

Vue3项目实战:5分钟搞定DWG文件在线预览(VisualizeJS+VSF流)

Vue3DWG文件在线预览实战&#xff1a;VisualizeJS与VSF流的高效集成指南 在工业设计、建筑规划和机械制造领域&#xff0c;DWG文件作为AutoCAD的标准格式&#xff0c;其在线预览需求日益增长。传统解决方案往往依赖专业桌面软件或复杂的服务端渲染&#xff0c;而现代Web技术已经…...

RLC电路仿真对比实验:Simulink原生模块 vs 自定义S函数谁更准?

RLC电路仿真精度对决&#xff1a;Simulink原生模块与S函数建模深度评测 在电力电子和控制系统仿真领域&#xff0c;Simulink作为行业标准工具&#xff0c;提供了两种截然不同的电路建模路径&#xff1a;一种是直接调用现成的RLC模块快速搭建电路&#xff0c;另一种则是通过S函数…...

EF Core 拦截器实战:SaveChangesInterceptor、CommandInterceptor 与审计落地缕

一、背景与问题缘起 MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作&#xff0c;需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT 注释&#xff08;因业务实际需要存储大数值关联字段&#xff09;。 表的核心特性为Java 多线程密集读写&#xff0c;业务请求持续高…...

Python的asyncio事件循环与不同事件循环策略的性能影响分析

Python的asyncio事件循环与不同事件循环策略的性能影响分析 Python的asyncio模块为异步编程提供了强大的支持&#xff0c;其核心是事件循环机制。事件循环负责调度和执行异步任务&#xff0c;而不同的循环策略可能对性能产生显著影响。随着高并发应用需求的增长&#xff0c;理…...

值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响节

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

高效查询:C++二分查找在年龄统计中的应用实践

1. 为什么需要二分查找处理年龄统计&#xff1f; 最近在做一个学生管理系统时&#xff0c;遇到了一个很有意思的问题&#xff1a;系统里有10万名学生信息&#xff0c;需要频繁查询某个年龄段的起止位置。最开始我用的是最简单的线性查找&#xff0c;结果每次查询都要遍历整个数…...

PostgreSQL COPY命令实战:高效数据迁移与批量处理技巧

1. COPY命令基础&#xff1a;PostgreSQL的数据搬运工 第一次接触PostgreSQL的COPY命令时&#xff0c;我正面临着一个紧急的数据迁移任务。当时需要将百万级用户数据从旧系统迁移到新平台&#xff0c;试过各种方法后&#xff0c;COPY命令的导入速度让我震惊——比传统的INSERT语…...

喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有驴

一、什么是setuptools&#xff1f; setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你&#xff1a; 定义 Python 包的元数据&#xff08;如名称、版本、作者等&#xff09;。 声明包的依赖项&#xff0c;确保你的包能够正确运行。 构建源代码分发包&…...

为什么92%的大模型API网关扩缩容失效?——3类隐性负载特征(token分布偏斜、KV Cache膨胀、prefill/decode失衡)深度解析

第一章&#xff1a;大模型工程化自动化扩缩容策略 2026奇点智能技术大会(https://ml-summit.org) 大模型服务在生产环境中面临显著的负载波动——推理请求可能在秒级内激增数倍&#xff0c;而空闲时段又需快速释放资源以控制成本。传统基于固定副本数或简单CPU/Memory阈值的扩…...