节点:zlib.gunzip 有效,但 zlib.inflate 无效?
Node: zlib.gunzip works, but not zlib.inflate?
为什么我上传的 GZIP 文件可以用 zlib.gunzip()
很好地解压,但上传的 ZIP 文件导致 zlib.inflate()
的 [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR'
错误,使用下面的代码?
if (req.body.compression == 'GZIP') {
zlib.gunzip(body, function(err, dezipped) {
if (typeof dezipped != 'undefined') {
var xmlData = dezipped.toString('utf-8');
app.parseAndOffload(req, res, xmlData);
} else
res.status(400).send('Could not decompress as GZIP file')
});
//-> Decompresses perfectly
} else
if (req.body.compression == 'ZIP') {
zlib.inflate(body, function(err, dezipped) {
if (typeof dezipped != 'undefined') {
var xmlData = dezipped.toString('utf-8');
app.parseAndOffload(req, res, xmlData);
} else
res.status(400).send('Could not decompress as ZIP file')
});
//-> [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR'
}
zlib.inflate
解码 zlib 格式,而不是 zip 格式。 zip 格式有tools out there。
为什么我上传的 GZIP 文件可以用 zlib.gunzip()
很好地解压,但上传的 ZIP 文件导致 zlib.inflate()
的 [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR'
错误,使用下面的代码?
if (req.body.compression == 'GZIP') {
zlib.gunzip(body, function(err, dezipped) {
if (typeof dezipped != 'undefined') {
var xmlData = dezipped.toString('utf-8');
app.parseAndOffload(req, res, xmlData);
} else
res.status(400).send('Could not decompress as GZIP file')
});
//-> Decompresses perfectly
} else
if (req.body.compression == 'ZIP') {
zlib.inflate(body, function(err, dezipped) {
if (typeof dezipped != 'undefined') {
var xmlData = dezipped.toString('utf-8');
app.parseAndOffload(req, res, xmlData);
} else
res.status(400).send('Could not decompress as ZIP file')
});
//-> [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR'
}
zlib.inflate
解码 zlib 格式,而不是 zip 格式。 zip 格式有tools out there。