2016-12-05 2 views
0

У меня есть буфер данных, сжатый функцией php gzcompress, и мне нужно распаковать его в js (nodejs).Uncompressing Gzip buffer в JavaScript

gzcompress(serialize($slot[$i]['advanced_details']),8) 

Я пробовал Класс: zlib.Gunzip от https://nodejs.org/api/zlib.html#zlib_class_zlib_gunzip

Но он бросает:

{ [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' } 

Полный буфер here

Мой код:

nodeZlib.gunzip(rows[0]['Slot'+(i+1)+'AdvancedDetails'], 8, function(error, data) { 
       if(!error) { 
        console.log = data.toString(); 
       } else { 
        console.log('Error unzipping:'); 
        console.log(error); 
       } 
      }); 

Что я делаю неправильно?

ответ

1

Вы вводите в заблуждение форматы. Ваше замешательство объясняется ужасным наименованием функций в PHP. PHP gzcompress() создает формат zlib, тогда как gunzip node.js ожидает формат gzip. Вместо этого вы можете использовать в PHP для генерации gzip-формата, или вы можете использовать node.js's zlib.inflate для распаковки формата zlib.

+0

Ничего себе, если это так ... собираюсь проверить прямо сейчас, и я проверю ответ, если это правильно. Спасибо. –

+0

Aaaaaand отлично! –

Смежные вопросы