在Node.js中使用zlib进行解压缩会导致错误的头部错误

简而言之,我试图从我的文件系统中读取一个.zip文件,解压缩zip文件,然后用xml-stream将其与文件中的内容做一些事情。

我认为这将是相当简单的,并从这开始:

 var fs = require('fs') , XmlStream = require('xml-stream') , zlib = require('zlib'); //- read the file and buffer it. var path = '../path/to/some.zip'; var fileBuffer = fs.readFileSync(path, { encoding: 'utf8' }); //- use zlib to unzip it zlib.gunzip(fileBuffer, function(err, buffer) { if (!err) { console.log(buffer.toString()); } console.log(err); }); 

但是这导致了一个

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

更改编码或方法( .unzip.gunzip.inflate )也不起作用。

我在这里错过了什么?

Gzip不是zip。 他们是不同的压缩格式,就像RAR一样。 错误表明你正在尝试读取的不是一个gzip文件。

您可以使用不同的库,如JSZip 。

我正在使用zlib.unzip,而不是zlib.gunzip