Фильтр файлов Multer не работает должным образом NodeJS - PullRequest
0 голосов
/ 13 марта 2019

Итак, я хочу, чтобы пользователи могли загружать только jpg jpeg или png файлы. Но код, который у меня есть, позволяет загружать файлы gif. Вот код:

let storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, '/public/images')
    },
    filename: function (req, file, cb) {
        crypto.pseudoRandomBytes(16, function (err, raw) {
            cb(null, raw.toString('hex') + Date.now() + '.' + mime.getExtension(file.mimetype));
        });
    }
});
let upload = multer({
    limits: {
        fileSize: 1000000
    },
    fileFilter: function(req, file, cb) {
        if(!file.originalname.match(/\.(jpg|jpeg|png)$/)){
            return cb('File must be an image.');
        }
        cb(undefined, true);
    },
    storage: storage
});

Маршрут:

app.post('/post', upload.any(), recaptcha.middleware.verify, (req, res) => {
    img: req.files[0].filename,
});

Почему проверка не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...