【发布时间】:2018-01-28 06:33:58
【问题描述】:
我正在使用 multer 在我的 express 应用中提交表单。问题是表单具有可选的图像提交选项。这意味着用户可以根据需要添加照片,但他/她也可以提交不带图像的表单。图片提交没有问题。但是当没有图像时,multer没有提交表单,甚至没有其他字段。
const express = require('express');
const router = express.Router();
const Company = require('../controller/CompanyController');
const multer = require('multer');
const path = require('path');
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './public/images/logos');
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
let upload = multer({ storage: storage }).any();
router.route('/companies').post(upload, Company.Create);
module.exports = router;
【问题讨论】:
-
不要使用
.any()尝试使用.fields([{ name: 'avatar', maxCount: 0 }])。我希望这能解决您的问题 -
问题出在我的控制器级别。手动修复了这个,multer跟它没有关系,我后来才发现的。顺便说一句,谢谢帮助。我用了
.array('logo', 1),几乎是一样的东西,但支持多个文件,我以后会用到。
标签: javascript node.js forms express multer