我正在使用
中的以下代码https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction
我需要的是从请求获取zip文件(我使用表达并且我已经请求和响应)并且我需要将其解压缩(解压缩)到某个路径(在示例中为我的本地驱动器),我应该把req和我在这里丢失的东西放在哪里使它工作
fn: function (req, res) {
var admZip = require('adm-zip');
var zip = new admZip();
zip.addLocalFile("C://TestFolder//TestZip");
在请求正文中我获取zip文件(即时通讯使用postman并在正文中我使用二进制文件并选择一个zip文件)
答案 0 :(得分:0)
您可以使用function Blog(body,date)
{
this.body=body;
this.date=date;
this.containsText = function(str){
if(this.body.toLowerCase().indexOf(text.toLowerCase())>=0){
return true;
}
return false;
}
}
代替form-data
并使用multer来简化问题。您可以通过访问binary
来获取输入文件,之后您可以执行解压缩操作。
例如,您将添加到您的路线:
req.file
答案 1 :(得分:0)
请尝试我的代码段:
对于某些信息,我的App结构如下所示:
my path --> C:\xampp\htdocs\service
service
|
-- tmp\
|
-- app.js
|
-- index.html
<html>
<body>
<h3>ZIP Upload:</h3>
<form action="/upload_zip" method="POST" enctype="multipart/form-data">
Select zip to upload:
<input type="file" name="zipFile" id="zipFile">
<input type="submit" value="Upload ZIP" name="submit">
</form>
</body>
</html>
当您使用邮递员或类似的东西发布时,请勿忘记使用enctype="multipart/form-data"
...
var express = require("express");
var fs = require("fs");
var AdmZip = require('adm-zip');
var app = express();
var multer = require("multer");
var multer_dest = multer({dest: "./tmp"}).single('zipFile');
app.get("/",function(req,res){
console.log("Show index.html");
res.sendFile(__dirname+"/"+"index.html");
});
app.post("/upload_zip",multer_dest,function(req,res){
console.log(req.file);
var zip = new AdmZip(req.file.path);
zip.extractAllTo("./tmp");
result = {
file:req.file,
message:"File has been extracted"
};
fs.unlink(req.file.path, function (e) {
if (e) throw e;
console.log('successfully deleted '+req.file.path);
});
res.end(JSON.stringify(result));
});
var server = app.listen(8081,function(){
var host = server.address().address;
var port = server.address().port;
console.log("Example App Listening at http://%s:%s",host,port);
})