我正在为我的新项目做一些nodejs的实验并在Image上传中进行。我正在使用Express MVC和mongodb。我想将用户返回到同一页面,其中包含来自multer配置本身的验证错误。 multer的filename
函数中没有响应参数。
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (request, file, callback) {
callback(null, 'public/uploads/');
},
filename: function (request, file, callback) {// Validations & File Name can be set/changed here
if (file.mimetype !== 'image/png' && file.mimetype !== 'image/jpg' && file.mimetype !== 'image/jpeg') {
console.log('File extensions required are png, jpg, jpeg');
return false;
} else {
var rString = randomString.generate({ length: 12, charset: 'alphabetic' });
callback(null, rString + '_' + Date.now() + path.extname(file.originalname));
}
}
});
var upload = multer({ storage: storage }).single('displayImage');
我的路线是
router.route('/change-avatar')
.get(function (req, res) {
res.render('views/profile/changeAvatar');
})
.post(function (req, res) {
var id = req.session.userId;
upload(req, res, function (err) {
if (err) { console.log(err); return; } // if error
console.log(req.files);
response.end('Your File Uploaded');
console.log('Photo Uploaded');
});
});
怎么可能呢。
由于
答案 0 :(得分:0)
至少显示你得到的错误,而不是显示'错误发布'。
但我客人问题是目的地路径不存在。
在&var; var storage'
之前尝试使用以下代码require('mkdirp').sync('./public/uploads/enduser')
记得
npm i mkdirp --save