在我的 node.js 服务器中,我正在从另一台服务器下载文件。下载的文件是用Base64编码两次的JPG图像数据,这意味着我必须对其进行两次解码。给出的是我的代码。
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();
我知道我的图像数据在我第一次解码时是有效的(我通过第二次解码验证了在线 base64 解码器中的数据并且我得到了正确的图像),但是当我第二次解码并创建一个文件时这个数据。我没有得到有效的 JPG 文件。
我已经将它与实际图像进行了比较,两个文件的开头和结尾似乎都很好,但我构建的文件中有些地方不对劲。构建的文件也比原始文件大。
PS:我在第二次解码之前进行拆分,因为第一次解码后的数据以
数据:; base64,数据开始
有什么想法吗。法鲁克·阿尔沙德。