Error: incorrect header check when running post
Error: incorrect header check when running post
我需要从 rest 调用中获取 zip(为了模拟,我使用 postman 和 post 的二进制选项,并添加一个带有文件夹和 html 文件的小 zip 文件),在模拟过程中,我想用 express 获取数据并解压缩 zip 文件并将其放入 C 盘下的某个文件夹中。
当前,当我 运行 以下程序时(这是我尝试过的所有代码)但我收到错误
events.js:85
throw er; // Unhandled 'error' event
^ Error: incorrect header check
at Zlib._handle.onerror (zlib.js:366:17)
var express = require('express'),
fs = require('fs'),
zlib = require('zlib'),
app = express();
app.post('/', function (req, res) {
var writeStream = fs.createWriteStream('C://myFolder', {flags: 'w'});
req.pipe(zlib.createInflate()).pipe(writeStream);
});
var server = app.listen(3000, function () {
console.log("Running on port" + 3000)
}
)
在 postman header 我添加了以下内容
content-Type ----> application/zip
我应该如何解决这个问题并保存 zip 文件? 还有其他推荐的 (zlib) 库来提取和保存 zip 吗?
zlib
用于提取 gzip 或压缩数据,而不是 .ZIP 文件。
您可以使用 node-unzip
模块:
var unzip = require('unzip');
...
app.post('/', function(req, res) {
var extractor = unzip.Extract({ path : 'C://myFolder' }).on('close', function() {
res.sendStatus(200);
}).on('error', function(err) {
res.sendStatus(500);
});
req.pipe(extractor);
});
如果 Postman 无法像这样处理上传(如评论中所建议),您可以使用 cURL 进行测试:
$ curl -XPOST localhost:3000 --data-binary @test.zip
我需要从 rest 调用中获取 zip(为了模拟,我使用 postman 和 post 的二进制选项,并添加一个带有文件夹和 html 文件的小 zip 文件),在模拟过程中,我想用 express 获取数据并解压缩 zip 文件并将其放入 C 盘下的某个文件夹中。 当前,当我 运行 以下程序时(这是我尝试过的所有代码)但我收到错误
events.js:85 throw er; // Unhandled 'error' event ^ Error: incorrect header check at Zlib._handle.onerror (zlib.js:366:17)
var express = require('express'),
fs = require('fs'),
zlib = require('zlib'),
app = express();
app.post('/', function (req, res) {
var writeStream = fs.createWriteStream('C://myFolder', {flags: 'w'});
req.pipe(zlib.createInflate()).pipe(writeStream);
});
var server = app.listen(3000, function () {
console.log("Running on port" + 3000)
}
)
在 postman header 我添加了以下内容
content-Type ----> application/zip
我应该如何解决这个问题并保存 zip 文件? 还有其他推荐的 (zlib) 库来提取和保存 zip 吗?
zlib
用于提取 gzip 或压缩数据,而不是 .ZIP 文件。
您可以使用 node-unzip
模块:
var unzip = require('unzip');
...
app.post('/', function(req, res) {
var extractor = unzip.Extract({ path : 'C://myFolder' }).on('close', function() {
res.sendStatus(200);
}).on('error', function(err) {
res.sendStatus(500);
});
req.pipe(extractor);
});
如果 Postman 无法像这样处理上传(如评论中所建议),您可以使用 cURL 进行测试:
$ curl -XPOST localhost:3000 --data-binary @test.zip