2017-01-18 2 views
0

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

Как получить доступ к файлам, которые я только что загрузил, используя файлы req.files, которые создает multer? Результат не является массивом, хотя multer docs говорят для нескольких файлов, 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?

Спасибо!

ответ

1

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

var filenames = req.files.map(function(file) { 
    return file.filename; // or file.originalname 
}); 
Смежные вопросы