我正在获取收到的电子邮件和它的附件,我想存储它的. png图像附件到本地存储。
获取后立即有我的附件对象:
{ contentType: 'image/png',
fileName: '1,10.png',
contentDisposition: 'inline',
transferEncoding: 'base64',
contentId: 'ii_jmykpyn60',
generatedFileName: '1,10.png',
checksum: 'b3f3de7de2ba946ff23ba2e41df87fae',
length: 7942,
content:
<Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 02 66 00 00
01 cc 08 02 00 00 00 f0 21 f3 c8 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 00
04 ... > }
另外,当我通过POST请求将其作为“图片”发送时,内容更改为:
picture:
{ type: 'Buffer',
data:
[ 137,
80,
78,
71,
13,
10,
26,
... 7842 more items ] }
我想得到我的图像的代码是:
var decims = req.body.picture.data.join(" ")
const buf = Buffer.from(decims);
fs.writeFile('image.png', buf, {encoding: 'base64'}, function(err) {
console.log('File created');
});
image.png出现在我的文件夹,但它的破碎.
2条答案
按热度按时间ymzxtsji1#
首先,将Buffer转换为base64,然后保存文件。
注:请确保您使用的文件扩展名“.png”与上传的文件扩展名相同。
isr3a4wc2#
我认为使用toBuffer函数保存png会更好。
以下是我的工作: