【问题标题】:convert RESPONSE BODY image to base64将响应体图像转换为 base64
【发布时间】:2018-04-19 14:01:13
【问题描述】:

如何将图片转换成base64字符串?

var request = require('request');

let options = {
  url: imgUrl,
  headers: {
    "Authorization": imgauth
  },
  contentType: "base64"
};

//request response Content-type : 'image/png'
request(options, function(error, response, body) {
  var base64data = new Buffer(body, 'binary').toString('base64');
  console.log(base64data);
});

我已经使用上面的代码来执行此操作,但它不起作用。

【问题讨论】:

  • 你对浏览器的内置工具做了哪些调试?
  • 不,我不是从浏览器调试...我是从 NodeJS 做的

标签: javascript node.js base64


【解决方案1】:

将请求 encoding 设置为 null 并获取文件内容,然后尝试使用节点的核心 buffer() 功能将其转换为 base64

查看请求documentation herehere

const Request = require('request').defaults({ encoding: null });

let options = {
    url: imgUrl,
    headers: { "Authorization": imgauth }
};

Request.get(options, (error, response, body) => {
    if (!error && response.statusCode == 200) {
        let imagedata = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');
        console.log(imagedata);
    }
});

【讨论】:

  • 什么是 dataURI ?它就像 png 或字符串
  • 你想在这里做什么?您要图像文件吗?你在哪里使用它?
  • 你只请求一个图像文件,响应正文将是一个图像,我需要将该图像转换为 base64
  • 在节点服务器上获取图像文件的用例是什么?您是否尝试缓存图像?为此,您最好使用fs library。
  • 告诉我们您的实际需求,我们可以为您提供更好的帮助
猜你喜欢
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 2020-09-03
  • 2014-04-06
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多