node.js サーバーで、別のサーバーからファイルをダウンロードしています。ダウンロードしたファイルは Base64 で 2 回エンコードされた JPG 画像データなので、2 回デコードする必要があります。与えられたのは私のコードです。
var base64DecodedFileData = new Buffer(file_data, 'base64').toString('binary');
var tmp = base64DecodedFileData.split("base64,");
var base64DecodedFileData = new Buffer(tmp[1], 'base64').toString('binary');
var file = fs.createWriteStream(file_path, stream_options);
file.write(base64DecodedFileData);
file.end();
画像データが最初にデコードされたときに有効であることはわかっています(2回目にデコードしてオンラインbase64デコーダーでデータを確認し、適切な画像を取得しました)が、2回目にデコードしてファイルを作成すると、このデータ。有効な JPG ファイルを取得できません。
私はそれを実際の画像と比較しました。両方のファイルの開始と終了は問題ないように見えますが、構築されたファイルに何かが正しくありません。構築されたファイルは、元のファイルよりもサイズが大きくなります。
PS:最初のデコード後のデータは
データ:; base64、DATASTARTS
何かご意見は。ファルク・アルシャド。