简而言之,我正在尝试从我的文件系统中读取.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
)也不起作用。
我在这里缺少什么?
答案 0 :(得分:1)
Gzip不是拉链。它们是不同的压缩格式,就像RAR一样。该错误表明您尝试读取的内容不是gzip压缩文件。
您可以使用其他库,例如JSZip。
答案 1 :(得分:0)
我使用zlib.unzip而不是zlib.gunzip