如何使用JSZip(How to use JSZip)

翻译 2017年07月25日 09:56:55

最近在用jszip来压缩script脚本以及相关的配置文件,所以详细了解了下它 ,顺便翻译了下自己需要的文章(请注意,因为只是自己记录看,所以翻译很随便,有用软件翻译并且进行相应的修改了,不喜欢的可以不看)

http://stuk.github.io/jszip/

JSZip是一个用于创建,阅读和编辑.zip文件的JavaScript库,具有友好而简单的API。

下面简单地翻译下这里的文章  http://stuk.github.io/jszip/documentation/examples.html


如何使用JSZip(How to use JSZip)

JSZip的一个实例代表一组文件。您可以添加,删除,修改它们。您还可以导入现有的zip文件或生成一个。

获取对象

在浏览器中

对于浏览器,有两个有趣的文件 : dist/jszip.js anddist/jszip.min.js (实际中用一个,min一般是正式发布使用)。

如果您使用node AMD加载程序(例如RequireJS),JSZip将注册自己:您只需将js文件放在正确的位置,或者配置加载程序(请参阅此处的RequireJS)。

在nodejs中

在nodejs中,您可以使用require

var JSZip = require("jszip");

基本操作

第一步是创建一个JSZip的实例:

var zip = new JSZip();

在这个实例上,我们可以使用.file(name,content)和.folder(name)来添加(更新)文件和文件夹。他们返回当前的JSZip实例,以便您可以链接调用。

// create a file
zip.file("hello.txt", "Hello[p my)6cxsw2q");
// oops, cat on keyboard. Fixing !
zip.file("hello.txt", "Hello World\n");
// create a file and a folder
zip.file("nested/hello.txt", "Hello World\n");
// same as
zip.folder("nested").file("hello.txt", "Hello World\n");
使用.folder(name),返回的对象具有不同的根:如果在此对象上添加文件,则将它们放在创建的子文件夹中。这只是一个视图,添加的文件也将在“根”对象中。

var photoZip = zip.folder("photos");
// this call will create photos/README
photoZip.file("README", "a folder with photos");
您可以使用.file(name)及其its getter访问文件内容:

zip.file("hello.txt").async("string").then(function (data) {
  // data is "Hello World\n"
});

if (JSZip.support.uint8array) {
  zip.file("hello.txt").async("uint8array").then(function (data) {
    // data is Uint8Array { 0=72, 1=101, 2=108, more...}
  });
}
您也可以用.remove(name)删除文件或文件夹:

zip.remove("photos/README");
zip.remove("photos");
// same as
zip.remove("photos"); //通过删除文件夹,您也删除其内容。

生成一个zip文件

使用.generateAsync(options)或.generateNodeStream(options)可以生成一个zip文件(不是一个真实的文件,而是在内存中的表示)。查看此页面了解如何写/给文件给用户的更多信息。

var promise = null;
if (JSZip.support.uint8array) {
  promise = zip.generateAsync({type : "uint8array"});
} else {
  promise = zip.generateAsync({type : "string"});
}var promise = null;
if (JSZip.support.uint8array) {
  promise = zip.generateAsync({type : "uint8array"});
} else {
  promise = zip.generateAsync({type : "string"});
}

读zip文件

使用.loadAsync(data)可以加载zip文件。检查此页面以查看如何正确执行(这似乎更棘手)。

var new_zip = new JSZip();
// more files !
new_zip.loadAsync(content)
.then(function(zip) {
    // 你现在已经有加载的zip中包含的每个文件
    new_zip.file("hello.txt").async("string"); // a promise of "Hello World\n"
});

相关文章推荐

前端JSZIP库的使用

前端直接打包导出ZIP 文件 ,无需后台交互。 "en"> "UTF-8"> "http://stuk.github.io/jszip/dist/jszip.j...
  • cut001
  • cut001
  • 2017年05月26日 17:33
  • 778

在vue.js中使用JSZip实现在前端解压文件

在vue.js中使用JSZip实现在前端解压文件,并将文件以string形式读取

zip压缩工具jszip--nodejs常用模块(8)

简单介绍 最近写个工具,需要将一些文件压缩到zip包里。使用nodejs调用机器上的zip命令也可以,但对机器就会有要求,需要安装zip命令。当npm上找了下,jszip和adm-zip,这两个...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

nodejs压缩文件

var JSZip = require('jszip'); var fs = require('fs'); var zip = new JSZip(); zip.file('test.txt', '...

nodejs 中压缩/解压方案

项目里要用到archive和unarchive整个已存在的folder,在找解决方案的时候尝试了一些当前比较流行的library,主要有adm-zip, JSZip, archiver等。 假设要压...

nodejs 压缩和解压

var zlib = require('zlib'); var async = require('async'); function gzip(text){ var buf = new Bu...

PHP利用apktool.jar自动打包解包

apktool下载地址:http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/ApkTool.sht...
  • lg_lin
  • lg_lin
  • 2016年09月14日 15:39
  • 1141

PHP读取APK的包信息,包括包名,应用名,权限,LOGO等

/** * 获取 APK 包信息和应用图标(需要exec支持) */ public function apkParseInfo($apk) { $aapt...
  • Nil88
  • Nil88
  • 2017年05月27日 15:28
  • 441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用JSZip(How to use JSZip)
举报原因:
原因补充:

(最多只允许输入30个字)