内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list($forumlist, $model = 0, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $model . '-' . $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 不分模型 * @param int $display 0全部CMS栏目 1在首页和频道显示内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list_show($forumlist, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 * @return mixed BBS栏目数据(仅列表) 尚未开放bbs频道功能 */ function forum_list($forumlist) { if (empty($forumlist)) return array(); static $cache = array(); if (isset($cache['bbs_forum_list'])) return $cache['bbs_forum_list']; $cache['bbs_forum_list'] = array(); foreach ($forumlist as $_fid => $_forum) { if ($_forum['type']) continue; $cache['bbs_forum_list'][$_fid] = $_forum; } return $cache['bbs_forum_list']; } // 导航显示的版块 function nav_list($forumlist) { if (empty($forumlist)) return NULL; static $cache = array(); if (isset($cache['nav_list'])) return $cache['nav_list']; foreach ($forumlist as $fid => $forum) { if (0 == $forum['nav_display']) { unset($forumlist[$fid]); } } return $cache['nav_list'] = $forumlist; } ?>javascript - Node Zlib incorrect header check - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Node Zlib incorrect header check - Stack Overflow

programmeradmin0浏览0评论

I am trying to unzip a gzipped file in Node but I am running into the following error.

Error: incorrect header check at Zlib._handle.onerror (zlib.js:370:17)

Here is the code the causes the issue.

'use strict'

const fs = require('fs');
const request = require('request');
const zlib = require('zlib');
const path = require('path');

var req = request('.json.gz').pipe(fs.createWriteStream('example.json.gz'));

req.on('finish', function() {
    var readstream = fs.createReadStream(path.join(__dirname, 'example.json.gz'));
    var writestream = fs.createWriteStream('example.json');

    var inflate = zlib.createInflate();
    readstream.pipe(inflate).pipe(writestream);
});
//Note using file system because files will eventually be much larger

Am I missing something obvious? If not, how can I determine what is throwing the error?

I am trying to unzip a gzipped file in Node but I am running into the following error.

Error: incorrect header check at Zlib._handle.onerror (zlib.js:370:17)

Here is the code the causes the issue.

'use strict'

const fs = require('fs');
const request = require('request');
const zlib = require('zlib');
const path = require('path');

var req = request('https://wiki.mozilla/images/f/ff/Example.json.gz').pipe(fs.createWriteStream('example.json.gz'));

req.on('finish', function() {
    var readstream = fs.createReadStream(path.join(__dirname, 'example.json.gz'));
    var writestream = fs.createWriteStream('example.json');

    var inflate = zlib.createInflate();
    readstream.pipe(inflate).pipe(writestream);
});
//Note using file system because files will eventually be much larger

Am I missing something obvious? If not, how can I determine what is throwing the error?

Share Improve this question asked Aug 11, 2017 at 18:24 MikeVMikeV 6571 gold badge8 silver badges21 bronze badges 1
  • In my case it was a wrong function usage. E.g. inflateSync while inflateRawSync was needed. Working example: gist.github./vgorloff/597d840f1b2a915b88b36c342cf56576 – Vlad Commented Jul 14, 2021 at 22:50
Add a ment  | 

1 Answer 1

Reset to default 6

The file is gzipped, so you need to use zlib.Gunzip instead of zlib.Inflate.

Also, streams are very efficient in terms of memory usage, so if you want to perform the retrieval without storing the .gz file locally first, you can use something like this:

request('https://wiki.mozilla/images/f/ff/Example.json.gz')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('example.json'));

Otherwise, you can modify your existing code:

var gunzip = zlib.createGunzip();
readstream.pipe(gunzip).pipe(writestream);
发布评论

评论列表(0)

  1. 暂无评论