Node.js NodeJS writeStream空文件
我正在尝试使用nodeJS来保存存储在base64字符串中的已处理图像Node.js NodeJS writeStream空文件,node.js,filesystems,png,Node.js,Filesystems,Png,我正在尝试使用nodeJS来保存存储在base64字符串中的已处理图像 var buff = new Buffer(base64data,'base64'); console.log(base64data); var stream = fs.createWriteStream('/path/to/thefile.png'); stream.write(buff) stream.end() 但是,生成的文件是空的 当我获取console.log(base64data)的输出时并在本地解码,它会
var buff = new Buffer(base64data,'base64');
console.log(base64data);
var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff)
stream.end()
但是,生成的文件是空的
当我获取console.log(base64data)的输出时代码>并在本地解码,它会生成一个有效的png二进制文件,那么为什么文件是空的呢
该文件是一个3600x4800 px png文件(即,它很大),这可能是一个因素吗
此外,我还尝试了writeFile
,但没有成功
是的,fs
是require('fs')
感谢您的stream.end(),因为没有写入任何内容。它是异步函数
var buff = new Buffer(base64data,'base64');
console.log(base64data);
var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff);
stream.on("end", function() {
stream.end();
});
更好:
var buff = new Buffer(base64data,'base64');
console.log(base64data);
var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff);
stream.end();
stream.on('finish', () => {
//'All writes are now complete.'
});
stream.on('error', (error) => {...});
代码是有效的,我可以让它在本地工作,请尝试记录buff
,因为这是您试图写入文件的内容(而不是base64data
),以查看转换它是否有问题。此外,您可能希望尝试检查您的权限。您可以提供一些有关您添加的行的详细信息吗?这并不更好;它不起作用。您在等待事件之前放置了stream.end()
。我正在使用mkpdf库,这对我来说根本不起作用,因为如果未调用end(),则永远不会到达end事件。使用mkpdf时,我实际上是在创建writestream,然后将其传递给库,然后调用pipe()方法。