使用zip.js压缩文件和解压文件

zip.js官方网站为:https://stuk.github.io/jszip/

在此说明,下面的例子基本上来自官方示例,大家可以做参考,官方示例地址为:https://stuk.github.io/jszip/documentation/examples.html

官方例子支持在线演示效果。

研究的目的是:如何获取zip包中的信息并读取传输(其实使用JAVA或者node.js更容易实现,之所以使用js也是因为业务的特殊性)。

准备库:

jszip.js可以去该地址下载:https://github.com/Stuk/jszip

下载成功解压是这样的,如图所示:

 <script src="jszip.js"></script>和<script src="FileSaver.js"></script>分别在dist和vendor目录下

jszip-utils.js可以去该地址下载:https://github.com/Stuk/jszip-utils

jszip-utils.js 在dist目录下

一、使用zip.js压缩生成zip包

源码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="jszip.js"></script>
    <script src="jszip-utils.js"></script>
    <script src="FileSaver.js"></script>
</head>
<body>
<input type="button" value="生成zip" onclick="test()"/>
<script>
function test(){

var zip = new JSZip();
zip.file("1.in", "1 1");
zip.file("1.out","2");
zip.generateAsync({type:"blob"})
.then(function(content) {
    // see FileSaver.js
    saveAs(content, "example.zip");
});

}
</script>
</body>
</html>

二、读取zip包内容并输出文件目录

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script src="http://sqqihao.github.io/codes/zipjs/zip.js"></script>
    <script src="http://gildas-lormeau.github.io/zip.js/demos/mime-types.js"></script>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.js"></script>
    <script src="http://sqqihao.github.io/codes/zipjs/UnZipArchive.js"></script>
    <style>
        code{
            display: block;
            padding: 10px;
            background: #eee;
        }
    </style>
</head>
<body>
<div>
    <h1>
        兼容性
    </h1>
    <div>
        <p>
            zip.js可以在所有的chrome浏览器和firefox浏览器中运行, 可以在safari6和IE10,以及IE10以上运行;
        </p>
        <p>
            如果要在IE9和safari中运行需添加, 具体可以参考官网的说明:
        </p>
        <code>
            1:并引用这个JS: https://bitbucket.org/lindenlab/llsd/raw/7d2646cd3f9b/js/typedarray.js
        </code>
    </div>

    <h2>
        demo
    </h2>
    <div>
        <input type="file" id="file">
    </div>
    <ul id="dir">

    </ul>
    <script>
        $("#file").change(function (e) {
            var file = this.files[0];
            window.un = new UnZipArchive( file );
            un.getData( function() {
                var arr = un.getEntries();
                var str = "";
                for(var i=0; i<arr.length; i++ ) {
                    str += "<li onclick=download(‘"+arr[i]+"‘)>"+arr[i]+"</li>"
                };
                $("#dir").html( str );
            });
        });
        var download = function ( filename ) {
            un.download( filename );
        };
    </script>
</div>
</body>
</html>

效果如图所示:

注意事项:

不知道由于是什么原因,如果单独将其写入某个html运行起来就会出现这样的情况,如图所示:

如果是通过git clone https://github.com/sqqihao/sqqihao.github.io

运行zip.html就会出现前面的正常解压并读取目录的结果。

另外请注意最好是通过火狐浏览器运行这段代码,否则可能出现这种情况,如图所示:

这篇文章主要建立在官方文档和这个github项目的基础上,希望能够对小伙伴们有所帮助。

原文地址:https://www.cnblogs.com/youcong/p/10324722.html

时间: 2024-11-04 03:23:32

使用zip.js压缩文件和解压文件的相关文章

压缩文件和解压文件

压缩文件: 复制代码代码如下: package mainimport (    "fmt"    "os"    "io"    "archive/tar"    "compress/gzip")func main() {    // file write    fw, err := os.Create("tar/lin_golang_src.tar.gz")    if err !=

Linux 压缩文件 和解压文件

.zip 解压:unzip FileName.zip 压缩:zip FileName.zip DirName .rar 解压:rar -x FileName.zip 压缩:rar -a FileName.rar DirName .tar.gz或tgz 解压:tar -zxvf FileName.tar.gz 压缩:tar -zcvf FileName.tar.gz DirName

linux 下tar 打包分割文件和解压文件方法一点通

首先是压缩: tar -czvp -f skype_backup.tar.gz skype_backup 分割: split -b 4000k skype_backup.tar.gz skype_backup_20090626.tar.gz. –verbose 如上两句命令合并为一句: tar -czvp -f – skype_backup |split -b 4000k – skype_backup_20090626.tar.gz. –verbose 合并文件: cat skype_backu

Linux tar(用来压缩和解压文件)

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便

【转】Java压缩和解压文件工具类ZipUtil

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 1 package com.utility.zip; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import jav

Android_JarZip压缩和解压文件

本文资料来自<android开发权威指南> AndroidSDK中提供了java.util.jar和java.util.zip包中的若干类和接口来完成. 压缩文件基本步骤: 1.创建一个JarOutputStream或ZipOutputStream对象,分别用来生成jar或zip文件. 2.创建了(jar|zip)OutputStream对象,还不能直接向输出流写入数据.由于压缩文件也需要使用文件名和路径来标识被压缩的文 件,因此,需要为每一个要压缩的文件创建一个JarEntry或ZipEnt

【转】用ZipArchive在App里压缩、解压文件

在这篇教程里,我将演示如何在iOS应用内压缩和解压文件.我们会使用到一个叫做ZipArchive的第三方库来实现这一功能.虽然还有其他压缩和解压文件的方案,但我感觉ZipArchive是最快和最易使用的. 为什么我需要解压文件? 这个问题很好.有很多理由可以用来解释为什么你的应用需要支持压缩和解压文件,这是其中一些: 苹果的50M下载限制 苹果强制要求通过3G网络下载的应用大小不能超过50M,绕过这个限制的方法是尽量让你的二进制包足够小,然后在应用里下载需要的资源,当然最好的方式是先把资源打包成

java 压缩以及解压文件,有tar,zip,gz(gizp)和解压

package com.yabsz.decompCompr; import java.io.File; import java.util.ArrayList; import java.util.List; public class main { public static void main(String[] args) { //需要下载commons-net-ftp-2.0.jar包下载地址:http://download.csdn.net/detail/u010696272/8006739

C# 压缩和解压文件(SharpZipLib)

先从网上下载ICSharpCode.SharpZipLib.dll类库 将文件或文件夹压缩为zip,函数如下 1 /// <summary> 2 /// 压缩文件 3 /// </summary> 4 /// <param name="fileName">压缩文件路径</param> 5 /// <param name="zipName">压缩的文件名称</param> 6 /// <pa