节点/ Multer获取文件名

我正在使用以下方式通过Multer将file upload到目录。 它工作的很好,但是我需要在上传之后执行一些操作,这些操作需要我刚刚发布到“upload”目录的文件的名称。 我如何获得我刚刚发布的文件的名称?

// Multer storage options var storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null, 'upload/'); }, filename: function(req, file, cb) { cb(null, file.originalname + '-' + Date.now() + '.pdf'); } }); var upload = multer({ storage: storage }); app.post('/multer', upload.single('file'), function(req, res) { // Need full filename created here }); 

request.file提供了以下统计信息,您只需从中selectrequest.file.originalnamerequest.file.filename即可获取由nodejs应用创build的新文件名。

 { fieldname: 'songUpload', originalname: '04. Stairway To Heaven - Led Zeppelin.mp3', encoding: '7bit', mimetype: 'audio/mp3', destination: './uploads', filename: 'songUpload-1476677312011', path: 'uploads/songUpload-1476677312011', size: 14058414 } 

例如,在nodejs中用ecma-6表示mvc应用程序,

 var Express = require('express'); var app = Express(); var multipartUpload = Multer({storage: Multer.diskStorage({ destination: function (req, file, callback) { callback(null, './uploads');}, filename: function (req, file, callback) { callback(null, file.fieldname + '-' + Date.now());}}) }).single('songUpload'); app.post('/artists', multipartUpload, (req, resp) => { val originalFileName = req.file.originalname console.log(originalFileName) } 
 var express=require("express"); var app=express(); var multer=require("multer"); var upload=multer({dest:"uploads/"}); app.post("/multer", upload.single("file"), function(req,res){ console.log( req.file.filename ); }); 

访问上传​​的文件数据在Multer中有所不同,具体取决于您是上传单个还是多个文件。 像这样访问数据:

上传单个文件:

 req.file 

上传多个文件:

 req.files 

使用request.file.filename

fieldname在表单中指定的字段名称
originalname用户计算机上的文件名称文件的编码types
mimetype文件的MIMEtypes
大小以字节为单位的文件大小