I'm trying to encode an mp3 file to base64. I'm reading file line by line using createInterface
and then concatenate the strings.
I then base64 encode the string using new Buffer(str).string('base64')
The encoded base64 is incorrect with + signs at every line read (assumption)
PHP base64 is working fine.
The Node generated base64 SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHd3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekphbV1NRlIgU291bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTlUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbUFQSUMAAXTvv70AAABpbWFnZS9qcGVnAABEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbQDvv73vv73vv73vv70AEEpGSUYAAQEAAAEAAQAA77+977+9AO+
PHP base64
SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHd3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekphbV1NRlIgU291bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTlUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbUFQSUMAAXTDAAAAaW1hZ2UvanBlZwAARG93bmxvYWRlZCBGcm9tIHd3dy5iZWF0emphbS5jb20A/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcICAcKCwoLCg8ODAwODxYQERAREBYiFRkVFRkVIh4kHhweJB42KiYmKjY+NDI0PkxERExfWl98fKcBBgYGBgcGBwgIBwoLCgsKDw4MDA4PFhAREBEQFiIVGRUVGRUiHiQeHB4kHjYqJiYqNj40MjQ+TERETF9aX3x8p//CABEIBAAEAAMBIgACEQEDEQH/xAAxAAEAAwEBAQAAAAAAAAAAAAAAAQIDBAUGAQEBAQEBAQAAAAAAAAAAAAAAAQIDBAX/2gAMAwEAAhADEAAAAvZmJ+H6wAoAAKTEgAIFAAEiJCCsWkoAAEAJAUEAEkiQAAAAEkJEJEJEJEAAAhIhIgKAAiRCYAAAUACEiEiAAAABKiRAAgAIARMEgACgApIBYAAASqEgAIACgARIAAACZIkABJCQAACABAUAAACwkQkQABEiEiBQLCRAgAFACgESISITEAAAIlLAAgAIAACgAElBYBIoAAAAAEiLVzbDUASAAACRAgkAAgAmISIkAAAAAESITFAAAoEJgCkSITACgImAAAAFAAAAAgAQEsACAAgKAAJUFiYmgAAQLQAkAJEJEJAAAAEhAEgEgBIAEpCQAAJITAAAiRCRCYAWEiABbCRAAITACgIkQkQkQmAAALQkBQESIEQlLAgAAABMTQWJKCwkQlUJESCJEJQAAAAAJSJAIEgIASgAkgAkiRCVQkQmaqsKpRCYAiElhMAEJEBYSITFAsJEARKoTACgAAQkQkQlUJEJEJECVEogQiYlCAAAqRYSoLElAAAAAAAABISAAoSBIJISCSQkRMohM2VmREpSEzpCZ1ITO1VmpVZVVowqtGLVZi0WRVYtYsKrIqsqqS1WghIqtCwkREqhJYAiRAAAUAAAABEiBCJSwIhMShAEjUJUFiSkmoATAEAAAAACTz+fu4e2envx2xWHQjweyl+2fTJ5WPJ9fy+k5Pc871bCWUTh0VEps+W+j8b1+jeZYnm49OfR6UykjyPY8fb0ejz/AENRzdLTxPb4PQIi0R4vf5vrZuqWEeZ18x6KWVfC9zxbfann6Yjg9DiPG9/m61vFowhhusJZeT2cnXpumOeuXz
Here is a sample code
var interface = readline.createInterface({
input: fs.createReadStream(file)
}),
str = '';
interface.on('line', (line)=>{
str += line;
} )
interface.on('close',()=>{
var base = new Buffer.from(str).toString('base64');
res.send( `<audio autoplay controls><source src="data:audio/mp3;base64,${base}"></source></audio>` )
})