使用 https.request 将下载的文件转换为 base64
Converting a downloaded file to base64 using https.request
我正在尝试下载图像,并在 base64 中获取它。这是我到目前为止一直在使用的:
let base64Data = 'data:' + file.mimetype + ';base64,';
const req = https.request(options, (res) => {
res.on('data', (d) => {
const buffer = new Buffer(d).toString('base64');
base64Data += buffer;
});
res.on('end', () => {
console.log(base64Data);
});
});
req.end();
文件已下载,但 base64Data 格式不正确。
我错过了什么?
data
可能触发不止一次,这意味着您需要收集所有数据块并在 end
处理程序中对它们进行组合和 Base64 编码(如连接单独的 Base64 编码字符串解码时可能不会产生原始值):
const req = https.request(options, (res) => {
let chunks = [];
res.on('data', (d) => {
chunks.push(d);
});
res.on('end', () => {
const buffer = Buffer.concat(chunks).toString('base64');
base64Data += buffer;
console.log(base64Data);
});
});
我正在尝试下载图像,并在 base64 中获取它。这是我到目前为止一直在使用的:
let base64Data = 'data:' + file.mimetype + ';base64,';
const req = https.request(options, (res) => {
res.on('data', (d) => {
const buffer = new Buffer(d).toString('base64');
base64Data += buffer;
});
res.on('end', () => {
console.log(base64Data);
});
});
req.end();
文件已下载,但 base64Data 格式不正确。
我错过了什么?
data
可能触发不止一次,这意味着您需要收集所有数据块并在 end
处理程序中对它们进行组合和 Base64 编码(如连接单独的 Base64 编码字符串解码时可能不会产生原始值):
const req = https.request(options, (res) => {
let chunks = [];
res.on('data', (d) => {
chunks.push(d);
});
res.on('end', () => {
const buffer = Buffer.concat(chunks).toString('base64');
base64Data += buffer;
console.log(base64Data);
});
});