Man, je loopt op het verkeerde pad. Ik heb in uw vorige vraagverzoek al uitgelegd dat Multer wordt gebruikt om bestanden op het bestandsschijfsysteem op te slaan en niet rechtstreeks naar uw database. Daarvoor moet je GRIDFS gebruiken.
Komend op uw huidige vraag.
app.post('/Upload', upload.single('solution') ,function (req, res, next) {
console.log(req.file);
});
Hier de upload.single('solution')
- roept een functie Upload aan en de doorgegeven bestandsnaam is een oplossing, maar het is duidelijk genoeg dat het hier niet beschikbaar is.
gebruik dit type formaat - documentatie van Multer
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage })
Het opslaggedeelte daar wordt gebruikt om het pad aan te geven waar uw bestand moet worden opgeslagen en het gedeelte over de bestandsnaam wordt gebruikt om wijzigingen aan te brengen in de bestandsnaam die u wilt hebben.
Lees de documentatie, want dat zal helpen. Wanneer we modules van derden gebruiken, moeten we de informatie die ze al hebben gegeven erkennen, zodat we hun werk gemakkelijk kunnen gebruiken.
Laat me het je makkelijker maken. Hier is kant-en-klare code die werkt.
Multer geeft rare fout tijdens het uploaden van bestand via ng-file upload
Ga dat draadje eens checken. De vraag werd door mij gesteld - het probleem was dat ik bestanden in array-indeling verzond, zoals in meerdere bestanden tegelijk. Als u dat niet doet, wijzigt u gewoon het ng-file-upload-segment om het demovoorbeeld voor één upload te gebruiken en vervangt u de nodejs-code aan de serverzijde .array
met .single
en de dingen zullen werken zoals u wilt dat ze werken - aangezien u het bestandsschijfsysteem wilt gebruiken om bestanden op te slaan.
Ik herhaal dat deze methode je niet zal helpen om het bestand rechtstreeks in mongodb op te slaan.
Laat het me weten als je meer verduidelijking nodig hebt.