【问题标题】:Converting a downloaded file to base64 using https.request使用 https.request 将下载的文件转换为 base64
【发布时间】:2017-07-12 18:21:50
【问题描述】:

我正在尝试下载一个图像,并在 base64 中获取它。这是我迄今为止一直在使用的:

let base64Data = 'data:' + file.mimetype + ';base64,';
const req = https.request(options, (res) => {
    res.on('data', (d) => {
        const buffer = new Buffer(d).toString('base64');
        base64Data += buffer;
    });

    res.on('end', () => {
        console.log(base64Data);
    });
});

req.end();

文件已下载,但 base64Data 格式错误。

我错过了什么?

【问题讨论】:

    标签: node.js base64


    【解决方案1】:

    data 可能会触发多次,这意味着您需要收集所有数据块并在end 处理程序中组合和 Base64 编码(因为连接单独的 Base64 编码字符串可能不会产生原始值解码时):

    const req = https.request(options, (res) => {
      let chunks = [];
    
      res.on('data', (d) => {
        chunks.push(d);
      });
    
      res.on('end', () => {
        const buffer = Buffer.concat(chunks).toString('base64');
        base64Data += buffer;
        console.log(base64Data);
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 2013-10-30
      • 2017-06-10
      • 2017-09-25
      • 2021-07-19
      • 2020-06-02
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      相关资源
      最近更新 更多