3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
要使用zlib解壓縮gzip格式文件,請inflateInit2
使用windowBits
參數(shù)調(diào)用16+MAX_WBITS
,如下所示:
inflateInit2(&stream, 16+MAX_WBITS);
如果你不這樣做,zlib會抱怨一個糟糕的流格式。默認(rèn)情況下,zlib使用zlib標(biāo)頭創(chuàng)建流,并且在inflate不會識別不同的gzip標(biāo)頭,除非您這樣說。雖然從頭文件的1.2.1版開始記錄了這一點(diǎn)zlib.h
,但它不在zlib手冊中。從頭文件:
windowBits
對于可選的gzip解碼,也可以大于15。添加32以windowBits
使用自動標(biāo)頭檢測啟用zlib和gzip解碼,或添加16以僅解碼gzip格式(zlib格式將返回aZ_DATA_ERROR
)。如果正在解碼gzip流,strm->adler
則是crc32而不是adler32。

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個贊
Node.js的
const { gunzip } = require('zlib');
const decompressGzip = compressedData =>
new Promise((resolve, reject) => {
gunzip(compressedData, (error, decompressedData) => {
if (error) return reject(error);
return resolve(decompressedData);
});
});
module.exports = { decompressGzip };
你zlib用紗線安裝
yarn add zlib
添加回答
舉報(bào)