2017-02-10 7 views
0

後、私は(ブラウザで)ファイルのgzip形式にクライアント側の変換を探しているとpako.保存Uint8Arrayは、GZIPに変換

事は、私はNode.jsの機能を使用して、この変換のための私の実行している一例だということであることが見出されましたこれはサーバー側です(少なくともこれは私が読んだものからNode.jsを理解したものです)。

"fs"(ファイルへの書き込み用)と "バッファ"(ファイルへの書き込みを担当する新しい関数に書き込み可能なフォーマットへの保存用)の両方を、いくつかのネイティブなjavascript関数に置き換えたいと思います。

これはコードです。

var pako = require('pako'), data = "sample text"; 
var fs = require('fs'); 

data = pako.gzip(data); 
var buffer = new Buffer(data.length); 
for (var i = 0; i < data.length; i++) { 

    buffer.writeUInt8(data[i], i); 

} 

var wstream = fs.createWriteStream('output.gz'); 

wstream.write(buffer); 
wstream.end(); 
+0

あなたの質問は何ですか? –

+0

Uint8Arrayをファイルへの書き込みを担当するように保存する方法を教えてください。 – AESTHETICS

+0

+私がファイルに書き込むために使用している現在の関数を置き換えたいと思います。 – AESTHETICS

答えて

0

あなたの最終目標は実際には言いませんでしたが、ユーザーがブラウザからダウンロードできるファイルを生成したいと思っています。単純なのはBlob APIです。 an example in the MDN docs:以下(ほとんど同じに読んで):に基づいています

const data = 'sample text'; 
 
const gzipped = pako.gzip(data); // => Uint8Array 
 
const blob = new Blob([gzipped], {type: 'application/gzip'}); 
 
const blobUrl = URL.createObjectURL(blob); 
 

 
console.log('Generated Blob; object URL: %s', blobUrl); 
 

 
// render link 
 
const link = document.createElement('a'); 
 
link.setAttribute('href', blobUrl); 
 
link.innerHTML = 'Download file'; 
 
document.body.appendChild(link);
<script src="https://unpkg.com/[email protected]/dist/pako_deflate.js"></script>

+0

私は何をしたいのか完全な説明を与えてくれません。どのように自分自身を見ているのか分かりませんが、主なポイントはサーバーコンピューティングを使用していないことでした。ファイルシステムを保存して使用するのは一時的ですが、gzipedファイルをサーバーディレクトリに投稿したいと思います。 – AESTHETICS

+0

あなたの問題はどれですか? –

+0

私は素敵なスニペットに気付いた!あなたはすべてのJavascriptファイルを含んでいましたか?私はこの操作に必要なものだけを含めることを考えていました。 – AESTHETICS

関連する問題