问题标签 [jszip]
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 - 使用 JSZip 下载 Salesforce PDF
SFDC 开发人员在这里。我创建了一个 VF 页面,它接受帐户 ID 并以表格形式在 VF 页面上显示一些信息。
我需要在单击按钮时使用不同的帐户 ID 多次调用此页面并将其中的表格下载为 zip 中的 PDF/文本文件。我正在考虑使用 JSZip 将所有 PDF/文本文件下载为一个 zip。
我使用 getContentAsPDF 在变量中获得了此 VF 页面的 Blob 值。
基本上我需要知道如何为每个帐户表使用这个 Blob 值并将其放在单独的文件中,将这些文件下载一个 Zip。任何想法如何进行?
编辑1:
所以在下面的代码中,我们可以看到我们在控制器中生成了一个 Blob 列表。单击 VF 页面按钮时,我将 Blob 列表作为参数发送到 JavaScript 函数。在该功能中,我试图将每个 blob 添加到 zip 并下载。但是我没有下载任何东西。
顶点代码:
JavaScript 代码:
javascript - 如何在 Javascript 中压缩多个 zip 文件?
问题
我想在 Javascript 中生成一个包含多个其他 ZIP 文件的 ZIP 文件。我使用 JSZIP,但我无法将 ZIP 文件添加到一个 ZIP 文件中。
例子
我有多个文本文件:
- 播放器 1 - 文件 1.txt
- 播放器 1 - 文件 2.txt
- 播放器 2 - 文件 1.txt
- 播放器 2 - 文件 2.txt
我想生成那个 ZIP 文件:
- 例子.zip
- 播放器 1.zip
- 播放器 1 - 文件 1.txt
- 播放器 1 - 文件 2.txt
- 播放器 2.zip
- 播放器 2 - 文件 1.txt
- 播放器 2 - 文件 2.txt
- 播放器 1.zip
谢谢您的帮助。
node.js - 在节点中压缩文件时命名文件夹
我正在使用 JSZip 创建一个 zip 文件,但我有一个非常具体的要求,我不知道该怎么做。
解压缩此文件时,需要创建一个文件夹,其中包含两个文件。假设 foo.zip 解压缩以创建一个文件夹 foo,其中包含文件 bar.mp4 和 baz.png。
到目前为止,这很容易,我可以去
但是我需要做的是,如果我将 foo.zip 重命名为 horse.zip,那么创建的文件夹应该称为 horse。如果我使用上面的代码,那么它将总是被称为 foo。我知道这是可能的,因为我有几个当前执行此操作的 zip 文件。
编辑:我在这里也没有绑定到 JSZip。我很乐意以任何可能的方式做到这一点。代码只会在服务器上运行。
javascript - Alasql 和 Angular;jszip 不是构造函数错误
所以在这里阅读另一篇文章和解决方案,我发现库 Alasql 似乎可以满足我的需要。
我已经安装了它并正在编写一个概念验证应用程序来使用它,当我尝试使用该文章中给出的插图时,我得到:
并且这些错误会像 Angular 的习惯一样继续存在。
寻找解决方案我发现了https://github.com/SheetJS/js-xlsx/issues/184但这似乎对我没有帮助。
所以我想知道其他人是否遇到过这个问题以及他们对问题的解决方案是什么,因为我真的很想使用这个库,但甚至无法让他们的示例代码工作。
编辑:
所以对于那些可能会遇到同样问题的人......我找到的解决方案是将 JSZip 库添加到我的应用程序中(即使它看起来像是包含在 SheetJs 库中)并确保它在Alasql 一块。这似乎已经成功了......
javascript - 在从 String.fromCharCode 创建的字符串中找不到
我正在尝试AndroidManifest.xml
使用 JSZip 从 apk 解析,
我得到了一个 Uint8Array 并使用以下代码将其转换为字符串:
我尝试使用 toLowerCase 并删除所有空格。
我得到一个字符串,我可以在控制台中看到它的内容,但是当我使用 indexOf 在字符串中搜索一个单词时,它总是返回-1。
我想问题在于输出可能不是常规字符串,并且 chrome 控制台进行了一些操作以便将其呈现为字符串。我想做的同样的操作。
javascript - Jszip 和 jquery 问题
我想实现从服务器压缩 .exe 文件,而有人使用复选框下载文件,但不是重点。试图了解 jszip 是如何工作的。但我有一些问题:下载器示例无法正常工作。我从https://stuk.github.io/jszip/documentation/examples/downloader.html中举一个例子,删除一些多余的功能,如样式、链接等。几乎所有的运行都是正确的,除了块:
JSZipUtils.getBinaryContent(url, function ( err, data) {..}
- 此部分不执行,它给了我一个错误:
“错误:InvalidStateError:无法从 'XMLHttpRequest' 读取 'responseText' 属性:该值仅在对象的 'responseType' 时才可访问'是'或'文本'(是'arraybuffer')。
另外我还有一个问题:如果我将脚本“demo.js”放在标题部分脚本不会通过按下按钮运行。应该下载脚本,因为它们体积小,并且标题加载速度比正文快。我读到包含脚本的最佳方法是将它们放在正文的末尾,在结束标记之前。但是,如果我将所有脚本放在正文的末尾,则按下按钮时不会发生任何事情。为什么它会这样工作?我红了很多文章,但没有找到答案。我是 JS 的新手,所以不要用力打败我)。我将非常感谢任何帮助和建议。
这是我的 1.html 文件:
这是 demo.js:
我包含文件的文件夹如下所示:
- -根文件夹:
- 1.html
- 子文件夹“dist”:
- 演示.js
- FileSaver.js
- jquery-1.8.3.min.js
- jszip.js
- jszip-utils.js
- 子文件夹“dist”:
- 1.html
javascript - Jive 主题中的 JSZip
有没有人在他们的 Jive 主题中实现了 JSZip ?我无法实例化 JSZip 对象。这是设置:我有一个 Jive 主题,在脚本文件夹中有一些自定义 JS 文件。JS 文件通过 javascript.soy 模板中的脚本标签包含,如下所示:
/*javascript.soy*/
<script src="{themeUrl('/scripts/carousel.js')}"></script>
<script src="{themeUrl('/scripts/jszip.min.js')}"></script>
<script src="{themeUrl('/scripts/our-theme.js')}"></script>
our-theme.js 尝试像这样实例化一个新的 JSZip 实例:
var zip = new JSZip();
浏览器抛出“ReferenceError: JSZip is not defined”的错误(在 firebug 或 Chrome 开发者控制台中可见)。这很奇怪,因为我可以通过 Firebug 或单击“查看页面源代码”查看脚本文件,我可以验证具有 JSZip 定义的 jszip.min.js 的正确脚本标记是否已生成并且可以访问。
我能够调用其他外部 JS 文件中的函数,所以我唯一能想到的就是我错误地实例化了这个对象。根据 JSZip 文档:
对于浏览器,有两个有趣的文件:dist/jszip.js 和 dist/jszip.min.js(只包括一个)。如果您使用 AMD 加载程序(例如 RequireJS),JSZip 将自行注册:您只需将 js 文件放在正确的位置,或配置加载程序(请参阅此处了解 RequireJS)。如果没有任何加载器,JSZip 将在全局范围内声明一个名为 JSZip 的变量。
我没有使用 RequireJS。所以 JSZip 应该注册为一个全局变量,但我无法访问它并且在窗口集合中看到它。
我浏览了社区,但看不到其他任何人使用 JSZip 和 Jive,但我认为尝试并没有什么坏处:)
javascript - 使用 JSZip 和 JSZipUtils 与 AngularJS 压缩多个图像文件时的空 zip 文件
我正在尝试使用带有 AngularJS 的 JSZip 和 JSZipUtils 将多个图像文件压缩在一起。我对 AngularJS 还是很陌生,所以我确信我已经把这个过程复杂化了。请多多包涵。
我正在尝试使用 Promise 处理所有内容,以确保在尝试运行 zip.generate 之前由 JSZipUtils.getBinaryContent 处理文件,然后在使用 saveAs 之前确保它正在处理 zip.generate。
好消息是,当我在底部生成之前查看 zip 的控制台日志时,它似乎显示了正确的结构,包括图像文件数据(由于某种原因被存储为 Uint8Array 类型)。但是当我运行 generate 并将其传递回流到 saveAs 调用时,它生成的 zip 文件是空的。当我对它执行 console.log 时,底部的 zip.generate 生成的 blob 文件似乎没有数据(只有 22 个字节大)。
我的假设是 JSZipUtils.getBinaryContent 生成的图像文件格式是错误的并且 zip.generate 没有正确处理它,或者我仍然遇到某种时间问题。另一个注意事项是图像与代码存储在同一台服务器上,因此我不必担心跨站点问题。非常感谢任何反馈!
解决了!!!
因此,我查看了 JSZip 页面上的一个示例,并以他们的源代码为例进行了清理。我把事情弄得太复杂了,看起来好像有某种时间问题。这是我现在拥有的工作代码:
javascript - 从服务器压缩 excel 文件以供下载
我正在尝试使用 jszip.js 从服务器捆绑多个 excel 文件,这些文件应该在单击时作为 zip 文件一起下载。
当我只是尝试替换演示脚本时,我可以创建一个 zip 文件,但它是空的。
当我将两个文件放在 zip.file 中时,第一个文件出现在 zip 中,但它已损坏。喜欢:
所以我应该把文件名放在第一个位置,而不是文件的位置,但是我必须以其他方式访问它......
我想我只是不检查 API 是如何工作的。
获得一个包含至少两个托管在服务器上的文件的示例会很棒......
javascript - JSZip 不会从 base64 字符串加载 zip?
因此,当用户更改页面上的项目时,我尝试将一个小的 JSON 对象写入 URL,并且还允许读取 URL 以让用户从他们离开的地方继续。
我可以使用 JSZip 生成 zip,但我无法弄清楚以后如何从该字符串中打开 zip。这是我正在使用的代码。zip.file 有元素,但我不知道如何将 base64 字符串读回 zip2 以便能够打开它。