在我的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
這只是服務器(我從哪裏下載文件)上傳文件的方式。 –