Dalam pertanyaan pengekodan ini, pengguna berusaha untuk menukar gumpalan, yang diperoleh daripada input borang HTML, kepada rentetan base64. Kod yang disediakan berjaya memaparkan imej dengan mencipta objek URL menggunakan createObjectURL, tetapi penukaran yang dikehendaki menggunakan readAsBinaryString menghasilkan pembolehubah sumber nol.
Untuk menyelesaikan isu ini dan memintas kerumitan kod yang disediakan, penyelesaian yang lebih mudah menggunakan kaedah readAsDataURL dibentangkan di bawah:
var reader = new FileReader(); reader.readAsDataURL(blob); reader.onloadend = function() { var base64data = reader.result; console.log(base64data); }
Menurut dokumentasi FileReader, readAsDataURL mengekod kandungan sebagai base64.
Untuk pengendalian tak segerak, fungsi yang boleh ditunggu boleh ditakrifkan sebagai:
function blobToBase64(blob) { return new Promise((resolve, _) => { const reader = new FileReader(); reader.onloadend = () => resolve(reader.result); reader.readAsDataURL(blob); }); }
Nota: Untuk mendapatkan rentetan yang dikodkan base64 sahaja, alih keluar data:/;base64, daripada hasilnya.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Blob daripada Borang HTML kepada Rentetan Base64?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!