问题标签 [pako]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在JS中重建解压zip文件的文件/文件夹结构
我正在尝试使用 JavaScript 在浏览器中重建解压缩的 zip 文件的文件/文件夹结构。理想情况下,我希望将所有文件都放在FileList中 (就好像它们刚刚通过网页上传一样)或其他可迭代对象。例如,一个压缩文件夹包含
应该重构为一个 FileList/iterable 对象,其中每个项目对应于包中的一个文件(据我所知,没有办法在 JS 中保留文件夹结构)。
我在阅读 tar.gz 文件并使用pako和此问题底部的代码解压缩它方面非常成功。但是,pako 的结果是一个大的 ArrayBuffer(inflator.result
在下面的代码中),在尝试重建原始文件和文件夹时,我无法从中得出正面或反面。我遇到了以下问题:
- 我如何知道 ArrayBuffer 中一个文件的结束位置和另一个文件的开始位置?
- 如何确定当前文件的原始文件类型?
一旦我知道了这一点,我应该能够将 ArrayBuffer 数据转换为一个文件
搜索网络也没有提供任何有用的信息。有没有人知道如何解决这个问题?
这是我用来解压缩 zipfile 的代码。
javascript - 使用 pako.js 在 javascript 中压缩字符串
我能够使用 pako.js 解压缩 JavaScript 中的字符串
我想要一种压缩字符串的方法,并且可以通过上面的代码使用 pako 和 gzip 解压缩输出。
我怎样才能做到这一点?
angularjs - 在 AngularJS 中压缩数据
我有这个应用程序,其中客户端的上传速度非常低,因此我需要压缩它们发送到服务器的 JSON 以提高它们的速度。
我在这里检查了几个(可能是所有)关于 pako、gzip、zlib 等的问题......但无法让它们为我工作。
我试过这样定义请求:
它基本上发送一个空的身体。
我尝试安装ngPako并执行如下请求:
浏览器就在我身上崩溃了
反正有角度压缩数据吗?
angular - 将节点模块导入角度打字稿/角度cli的正确方法是什么
我将一些“遗留”(非打字稿)js库导入我的角度SPA。
通常我只是将负载从 cdn 添加到 index.html,例如:
在角度分量中我只是贴花
这通常有效。现在我喜欢在本地“托管”这个库。我可以将它添加到角度项目中
但是我如何将它添加到 Angular 应用程序中?
我测试了向 polyfills.ts 添加导入(这适用于hammerjs,但不适用于pako)
这也应该适用于 ng build (并且可能被添加到已编译/打包的 runtime.js
顺便说一句:这是一个测试 stackblitz https://stackblitz.com/edit/ng-load-pako
javascript - 通过 JS 压缩的 gzinflate 字符串
我正在尝试通过Pako在客户端压缩一个巨大的 JS 对象,然后将其恢复到 PHP 脚本中。
JS代码
PHP 代码
应该是相当直截了当的事情,但我不断得到gzinflate(): data error
. 已经花了几个小时跳舞,仍然没有结果。求救!
javascript - 来自 websocket API 的膨胀响应
我从 websocket 端点收到以下消息,想知道如何扩展消息并获取 json。响应来自加密货币 websocket api。我通常使用 pako,但无法让 pako 在下面充气
回复
[""]
谢谢
javascript - 我的网页需要 JSZip 和 gzip,而 JSZip 拥有所有的成分,但以我无法破解的方式隐藏它们
JavaScript 中对 gzip 的支持出奇的薄弱。所有浏览器都实现它以支持 Content-encoding: gzip 标头,但没有标准访问浏览器的 gzip / gunzip 功能。因此,必须使用一种仅 javascript 的方法。周围有一些旧的 gzip-js 库,但它们似乎不支持流,并且已经 6 年没有维护了。
然后是 pako,维护得更积极,但如果使用他们自己的发行版,也不会看到启用流,因此您需要将整个二进制数组和 gzip 输出保存在内存中。我可能错了,但这就是我正在收集的内容。
JSZip 是一个设计良好的工具,并且支持流“Workers”。JSZip 使用 pako。ZIP 条目是 DEFLATEd 的,并且像 gzip 一样具有 CRC32 校验和,当然只是组织方式略有不同。仅考虑 JSZip 源,看起来很容易将 pako 的 gzip 压缩选项公开到 JSZip 的流支持中。如果我同时使用 JSZip 并且还需要 gzip,我为什么要加载 pako 两次?
我希望我可以破解 JSZip 的内部结构并连接到底层的 Workers,并使用基于 pako 的“Flate”(即,in-flate / de-flate)实现和 pako 识别的 gzip 选项。用 Chrome javascript 控制台探索了它,但我无法通过。可分发的可加载 jszip.js 或 jszip-min.js 隐藏了所有内部组件,无法访问脚本。我无法打开那个盒子。
所以我一直在查看 git hub 源代码,看看我是否可以构建自己的 jszip.js 或 jszip-min.js 可加载模块,在那里我将导出更多内部资源以供我的页面使用,但一直在这个20 年来,UNIX 制作文件,ant,一切,当谈到打包 javascript 模块的这些技巧时,我觉得自己完全是个新手,我看到 bower 和“gruntfiles”似乎都与 node.js 相关,我不知道不需要(仅客户端浏览器)并且从未使用过,所以我不知道从哪里开始。
php - 如何在 PHP 中解压缩之前在 JavaScript 中压缩的数据
我正在尝试使用压缩 JSON 字符串pako
并将其发送到 PHP 脚本(Laravel)并解压缩,然后对其进行修改,再次压缩并将其发送回客户端。
当我在客户端压缩和解压缩时,它工作得很好;但是当我将压缩数据从客户端发送到服务器时,它会告诉我:
“ErrorException(E_WARNING)gzdecode():数据错误”。
我已经尝试过gzinflate
, gzumcompress
, gzuncompress
, SO和官方文档zlib
,pako
但没有任何效果。
客户端代码:
服务器代码:
javascript - Pako js在膨胀后返回无效结果
我正在尝试在服务器上压缩 js 文件,然后在客户端解压缩并运行它。我的服务器上的代码:
ejs模板:
如果我对该代码进行放气,则会出现客户端错误:“未捕获的无效距离代码”:
但如果我试图缩小这个:
它工作正常。此外,如果我试图缩小这个:
Chrome 向我抛出一个错误:“Uncaught SyntaxError: Unexpected identifier”,因为 pako 给出了无效代码。那么,也许,字符集有问题,有什么想法吗?帕科版本:1.0.10
javascript - 使用 pako 压缩文件,然后使用 HTML 表单上传
我正在尝试使用带有 php 表单的 pako.js 来上传文件。
这就是我想要发生的事情:
1) 用户通过按钮选择文件 2) 文件在客户端压缩 3) 压缩文件上传到服务器
这是我到目前为止所拥有的,这是行不通的。当我尝试将元素 inputfilebutton 的值设置为压缩文件时出现异常。
的HTML:
JavaScript: