0

之前一直用的是request
实现方法是get请求中直接加一个参数 encoding: "base64" 就可以了

require("request")({
    url:URL,
    encoding: "base64",
  }, (err, res, base64) => {
    // 这里就可以拿到图片data的base64字符串了
    AL.log("base64", base64)
  })

请问axios应该如何完成呢?

1 个回答

1

题主如果要在node下,axios没有这个选项,这里用其它可以图片转base64的package就是。。别再一直改问题了。。

===

下面是浏览器端的

思路就是制造一个 image 和 canvas 元素进行编码。

这里的图片的url是已知的还是需要ajax进行获取的?如果是已知的就好做了,如果是ajax获取的那么也差不多下面的。

代码没有验证,题主可以试一试,我给注释了。

var img = new Image()
// 把url给img的src属性
img.src = url;
// img加载需要时间,需要onload进行回调
img.onload = function(){
    var canvas = document.createElement('canvas')
    // 设置高宽
    canvas.height = img.height
    canvas.width = image.width
    // 把图片放入 canvas
    canvas.getContext('2d').drawImage(image, 0, 0)
    // 下面这个就是 base64 的数据
    return canvas.toDataURL('image/png')
}