Получение доступа к именам файлов в req.files, созданных Multer, обработка вновь загруженных файлов

Я новичок в веб-разработке. У меня на странице есть загрузка нескольких файлов. Файлы успешно загружены с помощью multer в мою папку public / uploads.

Как мне получить доступ к именам файлов, которые я только что загрузил, используя req.files, которые создает multer? В результате получается не массив, хотя в документации multer сказано, что для нескольких файлов req.files будет содержать массив.

Я чувствую, что у меня что-то неправильно настроено.

Вот console.log(req.files). как вы можете видеть, обложки не разделены запятыми.

[ { fieldname: 'file',
    originalname: 'acschemrev5b00690.jpeg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: 'public/uploads',
    filename: '1484769679031-acschemrev5b00690.jpeg',
    path: 'public/uploads/1484769679031-acschemrev5b00690.jpeg',
    size: 79299 } ]
[ { fieldname: 'file',
    originalname: 'acschemrev5b00701.jpeg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: 'public/uploads',
    filename: '1484769679047-acschemrev5b00701.jpeg',
    path: 'public/uploads/1484769679047-acschemrev5b00701.jpeg',
    size: 127608 } ]
[ { fieldname: 'file',
    originalname: 'acschemrev5b00703.jpeg',
    encoding: '7bit',
    mimetype: 'image/jpeg',
    destination: 'public/uploads',
    filename: '1484769679109-acschemrev5b00703.jpeg',
    path: 'public/uploads/1484769679109-acschemrev5b00703.jpeg',
    size: 117312 } ]

Вот мой сервер app.js файл:

var express = require('express');
var app = express();
var fs = require("fs");
var bodyParser = require('body-parser');

var multer = require('multer');
// var upload = multer({ dest: 'uploads/' });


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

var upload = multer({ storage: storage });




// set the view engine to pug
app.set('view engine', 'pug');

app.use(express.static(__dirname + '/public'));


app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

app.get('/', function (req, res) {
  res.render('index');
});

// from multer
app.post( '/file-upload', upload.any(), function( req, res, next ) {
  // Metadata about the uploaded file can now be found in req.file
  res.send(req.files);
  // console.log(req.files);

  currentFiles = req.files;
  console.log(req.files);

app.post('/crop-images')

});

Мне нужно обработать только что загруженные файлы. Как лучше всего это сделать? Нужно ли мне создавать массив каждого имени файла, а затем обрабатывать каждое из них? Как мне получить их имена из файлов req.files?

Спасибо!


person moglido    schedule 18.01.2017    source источник


Ответы (1)


Если вы хотите получить имена файлов из req.files, вы можете просто сопоставить это с ним следующим образом:

var filenames = req.files.map(function(file) {
  return file.filename; // or file.originalname
});
person Tomasz Kasperek    schedule 18.01.2017