如何使用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
  • 1502

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

在vue.js中使用JSZip实现在前端解压文件,并将文件以string形式读取
  • zhongfei1217
  • zhongfei1217
  • 2016年11月22日 23:46
  • 2674

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

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

好用的 js 压缩工具 压缩软件 压缩程序 精简压缩 JsZIP(JavaScript压缩工具)

好用的 js 压缩工具 压缩软件 压缩程序 精简压缩 JsZIP(JavaScript压缩工具)
  • fkedwgwy
  • fkedwgwy
  • 2010年06月22日 17:13
  • 2468

jszip js压缩下载

  • 2014年10月31日 20:44
  • 32KB
  • 下载

nodejs 中压缩/解压方案

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

Palette.generateAsync()过时的替代

Palette的4种generate()已经过时了:Palette.generateAsync(bitmap,this); Palette.generate(bitmap);替代方法是使用Palett...
  • xiaokanghello
  • xiaokanghello
  • 2017年03月21日 12:22
  • 362

generateAsync is deprecated

final AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar); Bitmap bitmap = BitmapF...
  • Kewen_C
  • Kewen_C
  • 2017年08月25日 23:13
  • 75

JQuery 导入导出 Excel

从数据库中查询数据放在 HTML Table 中. 现在想要从这个 table 中导出数据来. 另外用户需要选择导出的列....
  • changtianshuiyue
  • changtianshuiyue
  • 2014年11月05日 10:56
  • 71792

如何使用JSZip(How to use JSZip)

最近在用jszip来压缩script脚本以及相关的配置文件,所以详细了解了下它 , http://stuk.github.io/jszip/ JSZip是一个用于创建,阅读和编辑.zip文件的Ja...
  • sujun10
  • sujun10
  • 2017年07月25日 09:56
  • 3559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用JSZip(How to use JSZip)
举报原因:
原因补充:

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