10

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);てローカルでデコードすると、有効な png バイナリが生成されるのに、なぜファイルが空なのですか?

ファイルは 3600x4800 px の png ファイルです (つまり、巨大です)。これが原因でしょうか?

また、私も試してみwriteFileましたが、うまくいきませんでした。

はい、そうfsですrequire('fs')

ありがとう

4

2 に答える 2

11

あなたの 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();
});
于 2012-11-12T05:53:34.573 に答える