我有带有 Express 的节点应用程序,我从邮递员等客户端发送请求,我需要从req并将其解压到我的本地文件夹中,我该怎么做?
我找到了以下开源但不知道如何获取req body并将其提取到我的本地文件夹中,例如“C://Test // extractDest”,
下面的代码取自以下开源但如果有有其他好的开源软件吗我可以用它代替
https://www.npmjs.com/package/decompress-zip https://www.npmjs.com/package/decompress-zip
var DecompressZip = require('decompress-zip');
var unzipper = new DecompressZip(filename)
unzipper.on('error', function (err) {
console.log('Caught an error');
});
unzipper.on('extract', function (log) {
console.log('Finished extracting');
});
unzipper.on('progress', function (fileIndex, fileCount) {
console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount);
});
unzipper.extract({
path: "C://Test//extractDest",
filter: function (file) {
return file.type !== "SymbolicLink";
}
});
这就是我发送我简单选择的 zip 文件的方式binary并选择一个zip file
我建议你使用multer https://github.com/expressjs/multer它适用于multipart/form-data
内容类型。
这是一个基本的工作示例。它假设我们只上传一个文件,项目根目录下存在一个名为“uploads”的文件夹,以及一个名为“singleFileUpload”的表单字段来保存您的数据。您可以更改 multer 之后的所有内容文档 https://github.com/expressjs/multer#usage:
var path = require("path");
var express = require("express");
var multer = require("multer");
var Unzipper = require("decompress-zip");
var app = express();
app.use(multer({dest:'./uploads/'}).single('singleFileUpload'));
app.post("/", function(req, res){
if (req.file){
var filepath = path.join(req.file.destination, req.file.filename);
var unzipper = new Unzipper(filepath);
unzipper.on("extract", function () {
console.log("Finished extracting");
});
unzipper.extract({ path: "C://Test//extractDest"});
}
res.status(204).end();
});
app.listen(3000);
使用邮递员,您现在可以使用以下配置上传和解压缩文件:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)