在我的node.js服务器中,我从另一台服务器上下载文件。下载的文件是两次使用Base64编码的JPG图像数据,这意味着我必须解码它两次。鉴于是我的代码。使用Node.JS创建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,DATASTARTS
任何想法。 Farrukh Arshad。
只是为了澄清 - 为什么它被编码了两次? – DeadAlready
这只是服务器(我从哪里下载文件)上传文件的方式。 –