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.
- Bitte überprüfen Sie diesen Kommentar im multer Problem. github.com/expressjs/multer/issues/114#issuecomment-231591339
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beispiel für den Einsatz von
multer
:Auszug aus Node.js - Datei-upload. Die ursprünglichen Autoren waren Iceman und Michail. Attribution details finden Sie auf der contributor-Seite. Die Quelle ist lizenziert unter CC-BY-SA 3.0 und können gefunden werden in der Dokumentation-Archiv. Referenz Thema-ID: 4080 und Beispiel-ID: 14210.
var ext = path.extname(file.originalname);
können Sie definierenpath
bittevar path = require('path');
req.body
ersten und dann Datei-Validierung.Wenn Sie verwendet werden, um web-Entwicklung, Sie können überprüft werden, am vorderen Ende, nicht an die back-end,Sie können versuchen:
ALSO
tun frontend-Validierung, nicht alle Benutzer sind Entwickler können den Quellcode ändern, einige von Ihnen sind einfach nur dumm und Validierung auf der client-Seite wird sparen, Verkehr