国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

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

zip.js是什么

  zip.js的github項目地址:http://gildas-lormeau.github.io/zip.js/

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

  如何使用:

  1:引用zip.js

  2:引用jQuery;

  3:并引用封裝的ZipArchive.js ,(因為zip.js的api使用起來比較繁瑣,所以自己封裝實現(xiàn)了這個插件)

  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 實現(xiàn)的 zip 壓縮和解壓縮工具包Zip.js使用詳解 JavaScript 實現(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)行需要兩個設(shè)置:      </p>      <code>        1:zip.useWebWorkers == false      </code>      <code>        2:并引用這個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)建一個延遲對象;    var def = this.defer = new $.Deferred();    zip.createWriter( new zip.BlobWriter("application/zip"), function(zipWriter) {      _this.zipWriter = zipWriter;      //繼續(xù)執(zhí)行隊列;      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} 壓縮的等級,0 到 9;     *   例如:{ comment : "提示文字" }     *   例如:{ lastModDate : "最后編輯時間" }     * */    "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)這個文件無法創(chuàng)建;     * @desc 創(chuà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)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 平泉县| 兴宁市| 水富县| 顺义区| 锡林郭勒盟| 阳谷县| 利川市| 崇州市| 武清区| 上栗县| 安宁市| 岢岚县| 炎陵县| 安远县| 建平县| 丰城市| 铜山县| 婺源县| 顺义区| 武宣县| 林州市| 正定县| 祁门县| 伊宁市| 昭苏县| 三原县| 宁南县| 西丰县| 雅江县| 景宁| 嘉荫县| 镇雄县| 盘山县| 营口市| 察哈| 武汉市| 滨州市| 文山县| 家居| 儋州市| 垦利县|