В любом случае, чтобы распаковать файл, загруженный в память, используя Multer? - PullRequest
0 голосов
/ 18 октября 2018

Я использую Multer, чтобы взять файл, загруженный в форму, и сохранить его в памяти, чтобы я мог его проанализировать и выплюнуть некоторые вещи, но есть ли способ взять файл zip и разархивировать его?и все еще хранить распакованные файлы в памяти без записи на диск?Я знаю, что для узла есть узел npm, который называется unzip, но, похоже, он может извлечь файл только из физического места, если я не ошибаюсь.Я ценю любое понимание!

const multer  = require('multer');
const storage = multer.memoryStorage();
const upload = multer({ storage: storage, putSingleFilesInArray: true });

// landing page
router.get('/', function (req, res) {
    res.sendFile(path.join(__dirname, '../../views', 'index.html'));
});

// parse multiple files from the form
router.post('/upload', upload.array('upload'), function (req, res) {
    console.log(req.files);
});

1 Ответ

0 голосов
/ 21 февраля 2019

Решено с помощью пакета AdmZip npm (показан ниже).

var AdmZip = require('adm-zip');

if (req.files[0].mimetype == 'application/x-zip-compressed'){
    var zip = new AdmZip(req.files[0].buffer);
    var zipEntries = zip.getEntries();
    zipEntries.forEach(function(zipEntry) {
         //do stuff
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...