【发布时间】:2018-07-14 19:19:30
【问题描述】:
我已经广泛浏览了有关此主题的先前问题,但解决这些问题的方法通常涉及没有 enctype 的 html 表单。
这是html表单
<form action='/profile' method='post'enctype="multipart/form-data">
<label for="photo">Image</label>
<input type="file" id="photo" name="photo" accept="image/*" required>
<input type='submit' value='Upload!' />
</form>
这是 multer 设置
//Local Storage
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, Date.now() + file.originalname);
}
});
var upload = multer({ storage : storage});
最后是我的(简化的)发布路线
router.post("/profile",upload.single('photo'),middleware.isLoggedIn,function(req,res){
if(!req.file){
console.log(req);
console.log("Did not work");
}else{
console.log(req.file);
}
}
});
这里要求的是我正在使用的中间件
middlewareObject.isLoggedIn = function(req,res,next){
if(req.isAuthenticated()){
return next();
}else{
res.redirect("/login")
}
}
有人对可能出现的问题有任何想法吗?我认为这是 multer 没有成功上传图像的问题,但我似乎无法调试它。
【问题讨论】:
标签: javascript express multer