2017-01-18 18 views
0

私はWeb開発を初めて利用しています。私はページに複数のファイルをアップロードしています。ファイルはmulterとともに「public/uploads」フォルダにアップロードされます。Multerによって作成されたreq.filesのファイル名にアクセスして、新しくアップロードされたファイルに何かをしています

multerが作成するreq.filesを使用して、今アップロードしたファイル名にアクセスするにはどうすればよいですか?結果は配列ではありませんが、multerのドキュメントでは複数のファイルがあり、req.filesには配列が含まれています。

私は何かが正しく設定されていないように感じます。

ここにはconsole.log(req.files)です。あなたが見ることができるように、バックセットはコンマで区切られていません。私はちょうどアップロードしたファイルを処理する必要が

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') 

}); 

[ { 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ファイルです。これを行う最善の方法は何ですか?各ファイル名の配列を作成し、それぞれのファイル名を処理する必要がありますか? req.filesから名前を取得するにはどうすればよいですか?

ありがとうございます!

答えて

1

あなたはreq.filesからファイル名を取得したい場合は、ちょうどそのようにそれの上にいることをマップすることができます:

var filenames = req.files.map(function(file) { 
    return file.filename; // or file.originalname 
}); 
関連する問題