【问题标题】:Multer - handle missing fileMulter - 处理丢失的文件
【发布时间】:2020-04-03 12:50:37
【问题描述】:

我正在使用 multer 作为快速中间件来上传文件,如下所示:

const upload = multer().single('fieldName');

router.post(
  '/',
  upload,
  (req, res) => {
    console.log(req.file) 
  }
);

它工作正常,除非我发送没有文件的表单。然后显然只是跳过了上传中间件,req.fileundefined

我尝试像这样添加过滤器,但显然没有文件时不会调用过滤器函数:

function fileFilter(req, file, cb) {
  console.log('filtering'); //never reached when file is missing
  if (!file) {
    return cb(new Error('no file', false));
  }
  cb(null, true);
}

const upload = multer({fileFilter: fileFilter}).single('fieldName');

router.post(...)

有什么方法可以处理 multer 中间件中丢失的文件?还是我必须事后检查?

【问题讨论】:

标签: node.js express multer


【解决方案1】:

在输入名称中签入您的 html 表单“fieldName”

你能帮上忙吗 在你的路线应用中

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now()+'.mp3')
  }
})
var upload = multer({ storage: storage })

router.post(
  '/uploadfile',upload.single('fieldName'),
)

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 2017-01-24
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多