Amazon S3 – 编辑上传的图像

概述:我正在使用Amazon S3来让用户上传图片。 我一直在编辑路线,以便用户可以在上传后编辑他们的图像。 我正在通过一个PUT路线来做这件事。 这是我目前的解决scheme。 它可以覆盖当前的图像。

问题:如果用户select零新图像,则会覆盖具有空白文件path的旧图像。 也就是编辑后没有图像显示。 如果用户只尝试编辑一个图像,同样的事情发生,一个图像将更新,但其他图像将被空白文件path覆盖,所以没有图像显示。

问题:让用户使用Amazon S3和Multer-S3编辑图像的正确方法是什么?

谢谢你的帮助! 🙂

app.put("/:id", function(req, res){ upload(req,res,function(err) { if(err) { console.log(err); res.redirect('/') } var filepath = undefined; var filepath2 = undefined; var filepath3 = undefined; if(req.files[0]) { filepath = req.files[0].key; } if(req.files[1]) { filepath2 = req.files[1].key; } if(req.files[2]) { filepath3 = req.files[2].key; } var image = filepath; var image2 = filepath2; var image3 = filepath3; var newData = {image: image, image2: image2, image3: image3} Rental.findByIdAndUpdate(req.params.id, {$set: newData}, function(err, rentals){ if(err){ req.flash("error", err.message); res.redirect("back"); } else { req.flash("success","Successfully Updated!"); res.redirect("/rentals/" + rental._id); } }); }); }); }); 

您应该在调用下游更新之前validation用户input。

如果这些值没有正确填充(因为没有更新),您不需要调用Rental.findByIdAndUpdate

没有看到Rental的代码,我无法提供更多的帮助。