Filter-Dateien auf der Grundlage der Erweiterung mit Multer in Express JS

Als Frage Titel erklärt, habe ich ein filter für hochgeladene Dateien auf basis der Dateierweiterung. So, ich ging durch die offiziellen docs gesucht und dieser Webseite.

, Was ich Versucht habe

Ich versucht habe Lösungen, die ich stieß. Dateien werden erfolgreich hochgeladen, aber das problem ist, wie die Dateien filtern. Derzeit mein Router.js die Datei sieht wie folgt aus.

Router.JS

var multer  = require('multer');
var storage = multer.diskStorage({ //multers disk storage settings
    destination: function (req, file, cb) {
        cb(null, './public/uploads/')
    },
    limits:{
        files: 1,
        fileSize: 1024 * 1024
    },
    filename: function (req, file, cb) {
        var datetimestamp = Date.now();
        cb(null, file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length -1])
    },
    onFileUploadStart: function(file) {
        console.log("Inside uploads");
        if (file.mimetype == 'image/jpg' || file.mimetype == 'image/jpeg' || file.mimetype == 'image/png') {
            return true;
        }
        else
        {
            return false;
        }
    }
});
var upload = multer({ //multer settings
    storage: storage
}).single('profilepic');


router.post('/profile', function(req, res){
    upload(req,res,function(err){
        if(err)
        {
            console.log(err);
        }
        else
        {
            console.log("Image was uploaded");
        }
    });
});

Ich habe versucht, hallte etwas in onFileUploadStart zu prüfen, ob es in Funktion ist oder nicht. Und war es nicht. Neben onFileUploadStart ich auch versucht fileFilter erwähnt, dass diese link, aber es war nicht hilfreich. Irgendwelche Vorschläge wie man dieses Problem lösen? Vielen Dank im Voraus.

InformationsquelleAutor A J | 2016-07-29
Schreibe einen Kommentar