2015-12-17 15 views
12

Używam poniższych plików do przesyłania plików do katalogu za pośrednictwem Multera. Działa świetnie, ale muszę wykonać pewne działania po przesłaniu, które wymagają nazwy pliku, który właśnie wysłałem do katalogu "upload". Jak mogę uzyskać nazwę pliku, który właśnie wysłałem?Węzeł/Multer Pobierz nazwę pliku

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

http://stackoverflow.com/questions/41209875/should -nie zezwalaj na przesłanie pliku-jeśli-ktokolwiek-zmiany-rozszerzenie-z-ex-do-png-za-mul –

Odpowiedz

6

request.file daje następujące statystyki, z której po prostu trzeba wybrać request.file.originalname lub request.file.filename aby uzyskać nową nazwę pliku utworzonego przez nodejs aplikacji.

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

przykład w nodejs wyrazić mvc aplikacji z 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) 
} 
+0

http://stackoverflow.com/questions/41209875/should-not-allow-file-upload-if-anyone-changes-extension-from-exe-to-png-via-mul –

1

pomocą request.file.filename

nazwa_pola Nazwa pola określonego w postać
ORIGINALNAME Nazwa z plik na komputerze użytkownika kodowanie Typ kodowania pliku
typ MIME Rodzaj pliku
rozmiar Rozmiar pliku w bajtach

2

dostępu do danych plików przesłanych różni się Multer, w zależności od tego, czy przesyłając pojedynczy lub Multiple plików. Dostęp do danych tak:

przesłać pojedynczy plik:

req.file 

Przesyłanie wielu plików:

req.files 
4
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); 
});