我有一个发布请求,用户可以在该请求中转到其个人资料图片页面并上传图片。我正在使用multer和express来上传图像。一切正常,上传图片,并输入到我的本地猫鼬数据库中。
问题在于,由于这是一个发布请求,因此图像会继续添加到数据库和磁盘中。以下是我的代码:
// Update profile picture
router.post('/profilepic', ensureAuthenticated, (req, res) => {
upload(req, res, (err) => {
if (err) {
res.render('user/userdashboard', {
error_msg: err
});
} else {
if (req.file == undefined) {
res.render('user/profilepic', {
error_msg: 'Error: No file selected! you must select a file to upload'
});
} else {
let thumbImageName = 'profilethumb_' + req.file.filename;
const newImage = {
profile_pic: req.file.filename,
member_id: req.user.member_id,
imagePath: req.file.destination,
imagePath2: req.file.path,
imageSizebytes: req.file.size,
imageThumb: thumbImageName
}
new Image(newImage)
.save();
req.flash('success_msg', 'Image saved.');
res.redirect('/user/userdashboard');
}
}
});
});
我也在数据库中存储了目的地和路径,所以我要实现的是,当用户上载新的配置文件映像时,磁盘上以及数据库中的先前映像将被删除/删除,以便无论个人资料图片被上传多少次,都只会为用户维护一份副本,这就是最近上传的一份。 在此先感谢大家的帮助。