Node.js Multer:文件筛选器不工作

Node.js Multer:文件筛选器不工作,node.js,express,multer,Node.js,Express,Multer,我用multer上传文件。一切正常,但文件过滤器不工作。我不知道哪里出了问题 routes.js var multer = require('multer'); // Multer diskStorage setting var storage = multer.diskStorage({ destination: function (req, file, callback) { callback(null, './uploads/'); }, filFilter: func

我用multer上传文件。一切正常,但文件过滤器不工作。我不知道哪里出了问题

routes.js

var multer = require('multer');
// Multer diskStorage setting
var storage = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads/');
  },
  filFilter: function (req, file, cb) {
    var typeArray = file.mimetype.split('/');
    var fileType = typeArray[1];
    if (fileType == 'jpg' || fileType == 'png') {
      cb(null, true);
    } else {
      cb(null, false)
    }
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '_' + Date.now() + '.jpg');
  }
});

var upload = multer({ storage: storage });
router.post('/add', upload.single('photo'), function(req, res){

    console.log('uploaded');
}

Multer还上传不允许上传的文件。有什么想法吗?

你的文件过滤器有一个输入错误;您已将其命名为filFilter。 你能把你的代码改成下面的代码并告诉我们它是否有效吗

var multer = require('multer');
// Multer diskStorage setting
var storage = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads/');
  },
  fileFilter: function (req, file, cb) {
    var typeArray = file.mimetype.split('/');
    var fileType = typeArray[1];
    if (fileType == 'jpg' || fileType == 'png') {
      cb(null, true);
    } else {
      cb(null, false)
    }
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '_' + Date.now() + '.jpg');
  }
});

var upload = multer({ storage: storage });
router.post('/add', upload.single('photo'), function(req, res){

    console.log('uploaded');
}

我认为这将有助于

必须在multer而不是diskStorage中定义文件过滤器

const uploadFilter = function(req, file, cb) {
    // filter rules here
}

const upload = multer({
    storage: storage,
    fileFilter: uploadFilter,
});

filFilter:
是问题或代码中的输入错误吗?OP:建议您接受(/upvote),如果答案解决了您的问题。谢谢
const uploadFilter = function(req, file, cb) {
    // filter rules here
}

const upload = multer({
    storage: storage,
    fileFilter: uploadFilter,
});