Node/Multer Получить имя файла

Я использую следующее для загрузки файлов в каталог через Multer. Он отлично работает, но мне нужно выполнить некоторые действия после загрузки, для которых требуется имя файла, который я только что разместил в каталоге "загрузить". Как получить имя файла, который я только что разместил?

// 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
});

Ответ 1

request.file дает следующую статистику, из которой вам просто нужно выбрать request.file.originalname или request.file.filename, чтобы получить новое имя файла, созданное приложением nodejs.

{ 
  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 express mvc app с ecma-6,

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

Ответ 2

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);
});

Ответ 3

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

Загрузка одного файла:

req.file

загрузка нескольких файлов:

req.files

Ответ 4

используя request.file.filename

fieldname Имя поля, указанное в форме
originalname Имя файла на компьютере пользователя кодирование Тип кодировки файла
mimetype Тип Mime файла
размер Размер файла в байтах