我需要创建需要发送到第三方 API 的 base64 字符串。我有流和缓冲区。表单流 我能够创建图像,因此流不会被破坏。这是两个变量:
var newJpeg = new Buffer(newData, "binary");
var fs = require('fs');
let Duplex = require('stream').Duplex;
let _updatedFileStream = new Duplex();
_updatedFileStream.push(newJpeg);
_updatedFileStream.push(null);
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,我都无法将它们中的任何一个转换为 base64 字符串。
_updatedFileStream.toString('base64');
Buffer(newJpeg, 'base64');
Buffer(newData, 'base64');
Run Code Online (Sandbox Code Playgroud)
以上都不起作用。有时我会得到 Uint8Array[arraySize] 或乱码字符串。我究竟做错了什么?
使用承诺的示例(但可以很容易地适应其他方法):
return new Promise((resolve, reject) => {
let buffers = [];
let myStream = <...>;
myStream.on('data', (chunk) => { buffers.push(chunk); });
myStream.once('end', () => {
let buffer = Buffer.concat(buffers);
resolve(buffer.toString('base64'));
});
myStream.once('error', (err) => {
reject(err);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2880 次 |
| 最近记录: |