【问题标题】:How to decode Base64 string and upload as image on to amazon s3 in nodejs?如何在nodejs中解码Base64字符串并作为图像上传到亚马逊s3?
【发布时间】:2019-07-23 17:38:06
【问题描述】:

我试过这样,它每次都会产生一个同名的图像,我想要动态名称,它必须上传到亚马逊 s3。请帮忙

let base64String = req.body.imgBase64;
      let base64Image = base64String.split(';base64,').pop();
      fs.writeFile('image.jpg', base64Image, { encoding: 'base64' }, function(
        err
      ) {
        console.log('File created');
        res.json('fire created');
      });

【问题讨论】:

    标签: node.js amazon-s3 base64


    【解决方案1】:

    此 sn-p 将始终将图像命名为“image.jpg”,因为您将其作为常量传递给 fs.writeFile() 第一个参数。要动态命名文件,您需要在循环中包含一个变量,该变量在每次迭代时都会更改。例如,您可以使用整数来执行此操作:

    var i;
    var count = 0;
    for (i = 0; i < numfiles; i++) {
      let base64String = req.body.imgBase64;
      let base64Image = base64String.split(';base64,').pop();
      var countString = String(count)
      fs.writeFile('image' + countString + '.jpg', base64Image, { encoding: 'base64' }, function(
            err
          ) {
            console.log('File ' + countString + ' created');
            res.json('File ' + countString + ' created');
          });
      count++;
    }
    

    关于上传到 S3,网上有很多资源可以指导你使用 node.js 上传到 S3。

    【讨论】:

      【解决方案2】:

      我建议为您的图片添加时间戳/日期戳以使其变得简单。至于亚马逊的事情,我建议作为一个单独的问题提出,因为那是完全不同的。

      let base64String = req.body.imgBase64;
            let base64Image = base64String.split(';base64,').pop();
            fs.writeFile(`image${Date.now()}.jpg`, base64Image, { encoding: 'base64' }, function(
              err
            ) {
              console.log('File created');
              res.json('fire created');
            });
      

      【讨论】:

        猜你喜欢
        • 2017-08-01
        • 2017-03-22
        • 2012-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        • 2016-01-11
        • 2016-04-09
        相关资源
        最近更新 更多