我需要从休息电话获取拉链(对于模拟我使用带有二进制选项的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] 举报,一经查实,本站将立刻删除。