Реализация загрузки нескольких файлов с использованием busboy - PullRequest
0 голосов
/ 21 апреля 2019

Попытка осуществить загрузку файла с помощью busboy, загрузка одного файла работает отлично. Нужна помощь в реализации загрузки из нескольких файлов.

Проверены различные параметры, такие как multer, но там, где нет четкого объяснения того, как обрабатывать несколько загрузок файлов.

Какие изменения кода необходимы для приведенного ниже кода, чтобы обеспечить

1) Параметры загрузки нескольких файлов добавляются в код формы

2) Блок кода busboy.on ('finish'function () {}) обеспечивает все файлы правильно загружены в папку назначения

Ниже приведен пример кода для загрузки одного файла

var path = require('path');
var fs = require('fs');
var os = require('os');
var express = require('express');
var app = express();
var Busboy = require('busboy');

app.get('/', function(req,res){
    res.send('<html<head></head><body>\
    <form method="POST" enctype="multipart/form-data">\
    <input type="Text" name="textfield"><br />\
    <input type="file" name="filefield1"><br />\

    <input type="submit">\

    </form>\
    </body></html>');

    res.end();
});

app.post('/',function(req,res){
  var busboy = new Busboy({headers:req.headers});
  busboy.on('file',function(fieldname,file,filename,encoding,mimetype){
    var saveTo = path.join('./tmp',filename);
    console.log('Uploading:' + saveTo);
    file.pipe(fs.createWriteStream(saveTo));
  });

  busboy.on('finish',function(){
    console.log('Upload complete');
    res.writeHead(200,{'Connection': 'close'  });
    res.end('Whole file upload process is finished now!');

  });

  return req.pipe(busboy);
});

var server = app.listen(3000,function() {

    var host = server.address().address
    var port = server.address().port

    console.log('Example app listening at http://%s:%s', host, port)

});
...