【问题标题】:Amazon S3 - Edit uploaded ImagesAmazon S3 - 编辑上传的图像
【发布时间】:2018-01-10 02:37:00
【问题描述】:

概述:我正在使用 Amazon S3 让用户上传图片。我一直在研究编辑路线,以便用户可以在上传图片后对其进行编辑。我正在通过 PUT 路线执行此操作。这是我目前的解决方案。它可以覆盖当前图像。

问题:如果用户选择零个新图像,它会用空白文件路径覆盖旧图像。又名编辑后没有图像显示。如果用户只尝试编辑一张图像,也会发生同样的情况,该图像会更新,但其他图像会被空白文件路径覆盖,因此不会显示图像。

问题:让用户使用 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);

            }
    });
    });
    });
    });

【问题讨论】:

    标签: node.js amazon-web-services express amazon-s3 multer


    【解决方案1】:

    您应该在调用下游更新之前验证用户输入。

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

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

    【讨论】:

      猜你喜欢
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2012-07-17
      • 2013-01-17
      • 2015-09-05
      • 2011-11-22
      • 2015-01-05
      相关资源
      最近更新 更多