javascript – 错误:运行post时检查标头错误

我需要从休息电话获取拉链(对于模拟我使用带有二进制选项的postman用于发布并添加文件夹和html文件的小zip文件),在模拟期间我想用快递获取数据并提取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)
    }
)

在邮差标题添加了以下内容

content-Type ----> application/zip

我该如何克服这个问题并保存拉链?有其他推荐(zlib)库来获取提取和保存zip?

解决方法:

zlib用于提取gzip或deflated数据,而不是.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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。