亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用zlib解壓縮gzip流?

如何用zlib解壓縮gzip流?

Gzip格式文件(gzip例如,使用程序創建)使用“deflate”壓縮算法,該算法與zlib使用的壓縮算法相同。但是,當使用zlib來膨脹gzip壓縮文件時,庫會返回一個Z_DATA_ERROR。如何使用zlib解壓縮gzip文件?
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

要使用zlib解壓縮gzip格式文件,請inflateInit2使用windowBits參數調用16+MAX_WBITS,如下所示:

inflateInit2(&stream, 16+MAX_WBITS);

如果你不這樣做,zlib會抱怨一個糟糕的流格式。默認情況下,zlib使用zlib標頭創建流,并且在inflate不會識別不同的gzip標頭,除非您這樣說。雖然從頭文件的1.2.1版開始記錄了這一點zlib.h,但它不在zlib手冊中。從頭文件:

windowBits對于可選的gzip解碼,也可以大于15。添加32以windowBits使用自動標頭檢測啟用zlib和gzip解碼,或添加16以僅解碼gzip格式(zlib格式將返回a Z_DATA_ERROR)。如果正在解碼gzip流,strm->adler則是crc32而不是adler32。


查看完整回答
反對 回復 2019-09-19
?
富國滬深

TA貢獻1790條經驗 獲得超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


查看完整回答
反對 回復 2019-09-19
  • 3 回答
  • 0 關注
  • 1757 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號