2016-06-08 9 views
1

Ich bin sehr neu in NodeJS und Web-Entwicklung im Allgemeinen. Ich verwende Multer, um eine einzelne Datei in meine Webanwendung hochzuladen. Das funktioniert gut, die Datei wird in meinen "uploads" -Ordner hochgeladen und ich plane diesen Pfad in meiner Datenbank zu speichern, damit ich auf diese Datei zugreifen kann. Das Problem, das ich habe, zeigt es an (es ist ein Bild).Hochladen und Anzeigen von Dateien aus dem lokalen Ordner

Die Dateien gespeichert werden, wie folgt: enter image description here

Ich bin nicht sicher, welcher Weg in meiner Datenbank zu speichern. Sollte es uploads/2e3546b428931124164022e5d1d9310e? oder brauche ich eine Erweiterung dafür.

Das JSON-Objekt für die Datei sieht wie folgt aus:

{ fieldname: 'mapImage', 
    originalname: 'office-wallpaper-2.png', 
    encoding: '7bit', 
    mimetype: 'image/png', 
    destination: 'uploads/', 
    filename: '2e3546b428931124164022e5d1d9310e', 
    path: 'uploads/2e3546b428931124164022e5d1d9310e', 
    size: 736807 } 

Antwort

0

Sie benötigen eine Datei umbenennen, bevor sie hochgeladen werden. Ein einfacher Weg, es ist die folgende

var storage = multer.diskStorage({ 
    destination: './public/uploads/', 
    filename: function(req, file, cb) { 
     crypto.pseudoRandomBytes(16, function(err, raw) { 
      if (err) return cb(err); 

      cb(null, raw.toString('hex') + path.extname(file.originalname)); 
     }) 
    } 
}) 

var upload = multer({ 
    storage: storage 
}) 

speichern Sie dann den Dateinamen in die Datenbank zu tun