第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

NodeJs base64 字符串不正確

NodeJs base64 字符串不正確

嗶嗶one 2023-10-14 16:05:27
我正在嘗試將 mp3 文件編碼為 base64。我正在使用逐行讀取文件createInterface,然后連接字符串。然后我使用 Base64 對(duì)字符串進(jìn)行編碼new Buffer(str).string('base64')編碼的 base64 不正確,每行讀取的 + 符號(hào)(假設(shè))PHP base64 工作正常。The Node generated base64 SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHd3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekphbV1NRlIgU291bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTlUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbUFQSUMAAXTvv70AAABpbWFnZS9qcGVnAABEb3dubG9hZGVkIEZyb20gd3d3LmJlYXR6amFtLmNvbQDvv73vv73vv73vv70AEEpGSUYAAQEAAAEAAQAA77+977+9AO+PHP base64SUQzAwAAAAZVbFRJVDIAAABOAAAATG92ZSBZb3UgVG9uaWdodCBmdC4gS2FiemEgRGUgU21hbGwsIERKIE1hcGhvcmlzYSAmIFNoYXNoYSB8IHD3dy5iZWF0emphbS5jb21UUEUxAAAAIwAAAFtCZWF0ekph bV1NRligU2 91bHMgfCBiZWF0emphbS5jb21UQUxCAAAAEQAAAHd3dy5iZWF0emphbS5jb21UWUVSAAAABQAAADIwMTLUQ09OAAAADgAAAFBlcmZlY3QgTXVzaWNDT01NAAAAJQAAAGVuZwBEb3dubG9h ZGVkIEZyb20gd3d3LmJlYXR 6amFtLmNvbUFQSUMAAXTDAAAAaW1hZ2UvanBlZwAARG93bmxvYWRlZCBGcm9tIHd3dy5iZWF0emphbS5jb20A/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHB gcICackCwoLCg8ODAwODxYQERAREBYiFRkVFRkVIh4k HhweJB42KiYmKjY+NDI0PkxERExfWl98fKcBBgYGBgcGBwgIBwoLCgsKDw4MDA4PFHAREBEQFiIVGRUVGRUiHiQeHB4kHjYqJiYqNj40MjQ+TERET F9aX3x8p//CABEIBAAEAAMBIGACEQEDEQH/xAAxAEAAwEBAQAAAAAAA AAAAAAAQIDBAUGAQEAAAAAAAAAAAAAQIDBAX/2gAMAwEAAhADEAAAAvZmJ++fu4e2envx2xWHQjweyl+2fTJ5WPJ9fy+k5Pc871bCWUth 0VEps+W+j8b1+jeZYnm49OfR6UykjyPY8fb0ejz/AENRzdLTxPb4PQIi0R4 vf5vrZuqWEeZ18x6KWVfC9zxbfann6Yjg9DiPG9/m61vFowhhusJZeT2cnXpumOeuXz這是示例代碼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>` )   })
查看完整描述

3 回答

?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

也許使用Buffer.from(str).toString('base64')



查看完整回答
反對(duì) 回復(fù) 2023-10-14
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

嘗試使用:const encoded = Buffer.from(stringValue, 'base64').toString();

atob()btoa()函數(shù)(在客戶端)。

查看完整回答
反對(duì) 回復(fù) 2023-10-14
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

readLine.createInterface和?的組合fs.createReadStream沒有多大意義,因?yàn)橐呀?jīng)觸發(fā)了和等createReadStream事件。dataerrorend

問題還在于您通過 讀取line,但這不是讀取二進(jìn)制文件的方式。如何在二進(jìn)制(此處為 .mp3)文件中定義一行?該代碼似乎讀取不同大小的數(shù)據(jù)塊(無論它認(rèn)為是一行),并附加一個(gè)字符串??赡鼙唤忉尀樾薪Y(jié)束的字節(jié)丟失了。

最后,當(dāng)文件非常大時(shí),您也會(huì)遇到麻煩,因?yàn)槟鷮⑺袃?nèi)容添加到字符串中,然后從中創(chuàng)建一個(gè)緩沖區(qū)并立即輸出。因此,它需要的內(nèi)存大小是 mp3 文件大小的 3 倍以上。

下面的解決方案僅使用fs.createReadStream塊的大小并將其限制為 60.000 字節(jié),方法是設(shè)置{highWaterMark : 60000}.

注意:默認(rèn)大小為 65536,但這不適用于以下 base64 編碼。數(shù)據(jù)大小必須是3的倍數(shù)!

收到的data是a?buffer,可以base64直接轉(zhuǎn)成。

const fs = require('fs');

var file = "test.mp3";


let stream = fs.createReadStream(file, {highWaterMark : 60000});


stream.on('data', (data) => {

? ? console.log("data length " + data.length)

? ? var base = data.toString('base64');

? ? fs.appendFile('test.b64', base, function (err,data) {

? ? ? ? if (err) {

? ? ? ? ? return console.log(err);

? ? ? ? }

? ? ? ? console.log("wrote " + base.length + " bytes");

? ? ? })??


}).on('error', err => {

? ? console.log(err);

}).on('end', () => {

? ? console.log("success");

});


查看完整回答
反對(duì) 回復(fù) 2023-10-14
  • 3 回答
  • 0 關(guān)注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)