麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript 實(shí)現(xiàn)的 zip 壓縮和解壓縮工具包Zip.js使用詳解

2024-05-06 16:26:20
字體:
供稿:網(wǎng)友
今天給大家介紹的文章是js實(shí)現(xiàn)的解壓縮插件zip.js,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
 

zip.js是什么

  zip.js的github項(xiàng)目地址:http://gildas-lormeau.github.io/zip.js/

  通過zip.js封裝一個(gè)能在網(wǎng)頁端生成zip文件的插件, 直接在網(wǎng)頁中創(chuàng)建包含文件夾和文件的壓縮包,也可以自定義名字并下載;

  如何使用:

  1:引用zip.js

  2:引用jQuery;

  3:并引用封裝的ZipArchive.js ,(因?yàn)閦ip.js的api使用起來比較繁瑣,所以自己封裝實(shí)現(xiàn)了這個(gè)插件)

  4:引用mime-types.js;

  查看DEMO, 使用方式為:

運(yùn)行下面代碼

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <script src="http://gildas-lormeau.github.io/zip.js/demos/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://files.cnblogs.com/files/diligenceday/ZipArchive.js"></script></head><body><script>  var z = new ZipArchive;  z.addFile("a/a.txt", "aaaaaaacontent");  z.addFile("aaaa.txt", "aaaaaaaccccc");  z.export("nono");</script></body></html>

  DEMO在后面:文件下載下來, 文件夾的格式如下:

  JavaScript 實(shí)現(xiàn)的 zip 壓縮和解壓縮工具包Zip.js使用詳解 JavaScript 實(shí)現(xiàn)的 zip 壓縮和解壓縮工具包Zip.js使用詳解

回到頂部

  創(chuàng)建壓縮文件和文件夾的詳細(xì)源代碼:
運(yùn)行下面代碼

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <script src="http://gildas-lormeau.github.io/zip.js/demos/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>  <style>    code{      display: block;      padding: 10px;      background: #eee;    }  </style></head><body>  <div>    <h1>      兼容性    </h1>    <div>      <p>        zip.js可以在所有的chrome瀏覽器和firefox瀏覽器中運(yùn)行, 可以在safari6和IE10,以及IE10以上運(yùn)行;      </p>      <p>        如果要在IE9和safari中運(yùn)行需要兩個(gè)設(shè)置:      </p>      <code>        1:zip.useWebWorkers == false      </code>      <code>        2:并引用這個(gè)JS:https://bitbucket.org/lindenlab/llsd/raw/7d2646cd3f9b/js/typedarray.js      </code>    </div>  </div><script>  zip.workerScriptsPath = "http://gildas-lormeau.github.io/zip.js/demos/";  /**   * @desc 壓縮文件;   * @event onprogress, onend, onerror;   * */  var ZipArchive = function() {    function noop() {};    this.name = "未命名文件";    this.zippedBlob = {};    var _this = this;    this.length = 0;    this.onend = noop;    this.onerror = noop;    this.onprogress = noop;    //創(chuàng)建一個(gè)延遲對象;    var def = this.defer = new $.Deferred();    zip.createWriter( new zip.BlobWriter("application/zip"), function(zipWriter) {      _this.zipWriter = zipWriter;      //繼續(xù)執(zhí)行隊(duì)列;      def.resolve();    }, this.error );  };  ZipArchive.blob = function (filename, content) {    return new Blob([ content ], {      type : zip.getMimeType(filename)    });  };  $.extend( ZipArchive.prototype, {    /**     * @desc 添加文件     * @param String filename為文件的名字;     * @param String content;     * @param Object options 傳參     *   例如:{ level : 0} 壓縮的等級(jí),0 到 9;     *   例如:{ comment : "提示文字" }     *   例如:{ lastModDate : "最后編輯時(shí)間" }     * */    "addFile" : function ( filename , content, options) {      var _this = this;      blob = ZipArchive.blob(filename, content);      //為了產(chǎn)生鏈?zhǔn)降男Ч?必須把deferrer賦值給新的defer      this.defer = this.defer.then(function() {        var def = $.Deferred();        _this.zipWriter.add(filename, new zip.BlobReader(blob)            ,function() { // reader              console.log("addFile success!!");              def.resolve();              //zipWriter.close(callback);            }, function (size, total) { //onend              _this.onend(filename, blob, total);              _this.length += total;            }, function () { //onprogress              _this.onprogress(filename, blob, total);            },options || {              //options            });        return def;      });    },    /**     * @desc 添加文件夾, 我發(fā)現(xiàn)這個(gè)文件無法創(chuàng)建;     * @desc 創(chuàng)建文件夾功能不好用, 需要?jiǎng)?chuàng)建文件夾你通過 zipWriter.addFile("directory/filename.txt", blob())創(chuàng)建文件夾和對應(yīng)文件;;     * */    "_addFolder" : function (foldername , options) {      //創(chuàng)建文件夾功能目前不能用;      //創(chuàng)建文件夾功能不好用, 直接通過 zipWriter.addFile("directory/filename.txt", blob())創(chuàng)建文件夾和文件      return this;    },    "size" : function () {      return this.length;    },    /**     * @desc 獲取blob文件     * */    "get" : function () {      return this.zippedBlob;    },    /**     * @desc 導(dǎo)出為zip文件     * */    "export" : function ( name ) {      name = name || this.name;      var _this = this;      this.defer.then(function() {        _this.zipWriter.close(function( zippedBlob ) {          if( typeof name === "string" || typeof name === "number") {            var downloadButton = document.createElement("a"),                URL = window.webkitURL || window.mozURL || window.URL;            downloadButton.href = URL.createObjectURL( zippedBlob );            downloadButton.download = name + ".zip";            downloadButton.click();          }else{            name( zippedBlob );          };        });      });    },    "error" : function() {      this.onerror( this );      throw new Error("壓縮文件創(chuàng)建失敗");    }  });</script><script>  var z = new ZipArchive;  z.addFile("a/a.txt", "aaaaaaacontent");  z.addFile("aaaa.txt", "aaaaaaaccccc");  z.export("nono");</script></body></html>


注:相關(guān)教程知識(shí)閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 成人三级电影网 | 91麻豆精品国产91久久久点播时间 | 日日草天天干 | 精品日韩欧美 | 精品中文视频 | xfplay噜噜av| 亚州综合网 | 国产伦久视频免费观看视频 | 羞羞色在线观看 | 国产亚洲精品成人 | 福利一区二区三区视频在线观看 | 久久精品欧美电影 | 亚洲精品一区二区三区免 | 欧日一级片 | 中文字幕免费在线观看视频 | 色的综合| 国产一区二区视频在线播放 | 国产一区视频免费观看 | 日韩视频中文 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 麻豆19禁国产青草精品 | 污片视频网站 | 成人啪啪18免费网站 | 国产一国产精品一级毛片 | 羞羞的视频| 蜜桃网站在线观看 | 国产精品无码久久久久 | 久久久久久久久久久久久久国产 | 久久免费视频一区二区三区 | 久久成人激情视频 | 在线看一区二区三区 | 精品一区二区三区免费看 | 日本欧美一区二区三区视频麻豆 | xnxx 日本免费 | 九九热九九热 | 91成人天堂久久成人 | 成人免费毛片片v | 欧美日韩在线播放 | 中文字幕天堂在线 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 久久久亚洲欧美综合 |