Ini adalah cuplikan untuk kode yang ingin saya lakukan Blob
untuk Base64
merangkai:
Bagian yang dikomentari ini berfungsi dan ketika URL yang dihasilkan oleh ini disetel ke img src, ia akan menampilkan gambar:
var blob = items[i].getAsFile();
//var URLObj = window.URL || window.webkitURL;
//var source = URLObj.createObjectURL(blob);
//console.log("image source=" + source);
var reader = new FileReader();
reader.onload = function(event){
console.log(event.target.result)
}; // data url!
var source = reader.readAsBinaryString(blob);
Masalahnya adalah dengan kode yang lebih rendah, variabel sumber yang dihasilkan adalah nol
Memperbarui:
Apakah ada cara yang lebih mudah untuk melakukan ini dengan JQuery untuk dapat membuat Base64 String dari file Blob seperti pada kode di atas?
javascript
jquery
quark
sumber
sumber
onloadend
harus datang sebelumreadAsDataURL
kalau-kalau terjadi sesuatu yang aneh dan selesai memuat sebelum mencapai baris kode berikutnya. Jelas ini tidak akan pernah terjadi tetapi masih merupakan praktik yang baik.ini bekerja untuk saya:
sumber
cb
?sumber
Ada cara JavaSript murni yang tidak bergantung pada tumpukan:
Untuk menggunakan fungsi pembantu ini Anda harus menetapkan panggilan balik, contoh:
Saya menulis fungsi pembantu ini untuk masalah saya pada proyek React Native, saya ingin mengunduh gambar dan kemudian menyimpannya sebagai gambar cache:
sumber
atau
lihat konstruktor Response , Anda dapat berubah
[blob, buffer source form data, readable stream, etc.]
menjadi Respons , yang kemudian dapat diubah menjadi[json, text, array buffer, blob]
dengan metode / panggilan balik async.sunting: seperti yang disebutkan @Ralph, mengubah semuanya menjadi utf-8 string menyebabkan masalah (sayangnya API Respons tidak menyediakan cara untuk mengubah ke string biner), jadi buffer array digunakan sebagai perantara, yang membutuhkan dua langkah lagi (mengubahnya menjadi byte array LALU ke string biner), jika Anda bersikeras menggunakan
btoa
metode asli .sumber
btoa
Anda dapat memperbaiki masalah dengan:
Saya harap ini membantu Anda
sumber
Jadi masalahnya adalah Anda ingin mengunggah gambar basis 64 dan Anda memiliki url gumpalan. Sekarang jawaban yang akan bekerja pada semua browser html 5 adalah: Do:
sumber
Saya ingin sesuatu di mana saya memiliki akses ke nilai base64 untuk disimpan ke dalam daftar dan bagi saya menambahkan pendengar acara bekerja. Anda hanya perlu FileReader yang akan membaca gumpalan gambar dan mengembalikan base64 di hasilnya.
Bagian terakhir adalah readAsDataURL yang sangat penting digunakan untuk membaca konten Blob yang ditentukan
sumber
Cara termudah dalam satu baris kode
sumber