IT戦記 このページをアンテナに追加 RSSフィード

2008-11-30

JavaScript 内で無圧縮 ZIP を作って Data URI を生成するライブラリを作りました

ちょっと思うところあって

JavaScript 内で、複数のファイル情報を作って Zip で固めて、 Data URI を生成するライブラリを作ってみました。

ソースは以下の zip.js です。

share - Revision 35107: /lang/javascript/Zip

使うには

以下の base64.js が必要です。

share - Revision 35107: /lang/javascript/Base64/trunk

この base64.js は弾さんが作ったものです。

今回 Zip で使うように、ちょっとチューニングさせていただきました。

こんなことができます

// zip オブジェクトを作る
var zip = new Zip;

// 文字列をファイルとして追加する
zip.addString('Hello, world!!', 'message.txt');

// Ajax を使ってファイルを取得してきて zip 内に追加する
zip.addFile('index.html');
zip.addFile('index.html', 'fuga/fuga.html'); // 名前を付ける

// Ajax を使ってファイルを取得してきて zip 内に追加する(非同期)
zip.addFileAsync('index.html', null, function(file, xhr) { /* callback */});

// 空のディレクトリを追加
zip.addDirectory('hoge/');

// A 要素を作る
var a = document.createElement('a');

// Zip を Data URI に変換する
a.href = zip.getDataURI()

// リンクテキスト
a.textContent = 'hoge.zip';

// DOM に挿入する
docment.body.appendChild(a);

実際の例は以下

DEMO

たぶん動くブラウザ

fmactionfmaction 2008/12/01 01:37 色々使えそうだねー!!
便利♪♪便利♪♪

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。