Как я могу загрузить zip-файл, используя nodejs, и распаковать его? - PullRequest
1 голос
/ 27 апреля 2020

Я хочу загрузить zip-файл на сервер, используя узел. Так что любой может помочь мне разобраться.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2020

Сначала загрузите ваш zip-файл, используя 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 })

Затем распакуйте его, используя модуль unzipper:

1) Установите модуль unzipper

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 голосов
/ 27 апреля 2020

Вы можете попробовать мультер npm 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 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...