2017-02-10 34 views
0

Я искал для преобразования на стороне клиента Gzip файла (в браузере) и нашел pako.Сохранение Uint8Array к Gzip после преобразования

Дело в том, что я мой работает пример такого преобразования с помощью функции Node.js которые являются серверной (по крайней мере, это мое понимание Node.js из того, что я читал).

Я хотел бы заменить как «fs» (для записи в файл), так и «buffer» (для сохранения в формат, который можно записать в новую функцию, ответственную за запись в файл), в некоторые собственные функции 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 в каталоге сервера, базу данных в форме, которая может быть прочитана сразу после ungziping. – AESTHETICS

+0

Хорошо. С какой из них вы столкнулись? –

+0

Я только что заметил фрагмент, хорошо! Вы включили все файлы Javascript или только нужные? Я думал о включении только необходимых для этой операции. – AESTHETICS