Node.JS - 使用Buffer在base64中编码图像

时间:2011-08-15 17:28:01

标签: json node.js base64

我正在尝试使用Node.JS中的base64对图像进行编码,以作为附件传递给PostageApp API。我以为我有它工作,但它附加了一个1K文件,这不是我想要的。

这是我的代码:

 var base64data;

 fs.readFile(attachment, function(err, data) {
   base64data = new Buffer(data).toString('base64');
 });

这是我正在进行的API调用的一部分:

 attachments: {
   "attachment.txt" : {
     content_type: "application/octet-stream",
     content: base64data
   },
 }

我有点迷失,对Node不太好,但我认为它会起作用。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:36)

fs.readFile(attachment, function(err, data) {
   var base64data = new Buffer(data).toString('base64');
   [your API call here]
});

结果存在需要一些时间,因此当您获得数据时,外部范围的执行已经结束。

答案 1 :(得分:11)

只需指定" base64"作为编码。 Per the docs

  

如果未指定编码,则返回原始缓冲区。

fs.readFile(attachment, {encoding: 'base64'}, function(err, base64data) {
   [your API call here]
});