如何使用nodejs上传一个zip文件并解压?

问题描述 投票:0回答:1

我想用node上传一个zip文件到服务器中,所以有谁能帮我想办法。

node.js zip
1个回答
2
投票

首先用Multer上传你的zip文件。

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

然后用unzipper模块解压。

1) 安装解压模块

npm i unzipper

2) ExtractZip.js JavaScript

const unzipper = require('./unzip');
var fs = require('fs');


fs.createReadStream('path/to/archive.zip')
  .pipe(unzipper.Parse())
  .on('entry', function (entry) {
    const fileName = entry.path;
    const type = entry.type; // 'Directory' or 'File'
    const size = entry.vars.uncompressedSize; // There is also compressedSize;
    if (fileName === "this IS the file I'm looking for") {
      entry.pipe(fs.createWriteStream('output/path'));
    } else {
      entry.autodrain();
    }
  });

/ 资料来源

测试。

c:\Samim>node ExtractZip.js

0
投票

你可以试一试Multernpm install --save multer

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })
© www.soinside.com 2019 - 2024. All rights reserved.