nodejs 如何将请求的图片转Base64

javascriptcontroller.action('image', function * (next) {
  var mediaId, token, response, url;

  var base64, type, prefix;

  this.checkQuery('mediaId').notEmpty();  // 参数验证
  if (this.errors) {
    this.body = kit.wrapResponse(true, kit.popValue(this.errors[0]));
    return;
  };

  token = yield base.getAccessToken(); // 获取access_token
  url = resource.genFetchImage(token, mediaId); // 请求图片的链接
  response = yield request.get(url); // 通过co-request向微信服务器发出请求

  // 处理响应,组合base64图片
  type = response.headers["content-type"];
  prefix = "data:" + type + ";base64,";
  base64 = new Buffer(response.body, 'binary').toString('base64');

  this.body = prefix + base64;
  yield next;
});

以上代码是我写的控制器,功能是:从微信服务器下载图片,并将其转换成base64格式的。代码是成功执行了,可返回的结果在浏览器img标签里显示不出来。

运行环境
- node v0.12.2
- koa v0.20.0
- controller是我自己写的类

调试+Google+Baidu一晚,还是没能解决。不过调用 fs.writeFile(filename, data[, options], callback) 接口能够下载图片下来。

小白一枚,各路大侠尽情喷我!

阅读 22.9k
2 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏