Sekarang saya mendapatkan objek File dengan baris ini:
file = document.querySelector('#files > input[type="file"]').files[0]
Saya perlu mengirim file ini melalui json di basis 64. Apa yang harus saya lakukan untuk mengubahnya menjadi string base64?
javascript
base64
Dengan lantang
sumber
sumber
await
suatu fungsi yang mengembalikan Janji yang ditolak, Anda tidak akan mendapatkan Kesalahan yang dikembalikan oleh panggilan; itu akan dibuang dan Anda harus menangkapnya.Coba solusinya menggunakan
FileReader
kelas :Perhatikan bahwa itu
.files[0]
adalahFile
tipe, yang merupakan sub dari dariBlob
. Dengan demikian dapat digunakan denganFileReader
.Lihat contoh kerja lengkap .
sumber
return reader.result
darigetBase64()
fungsi (daripada menggunakanconsole.log(reader.result)
) karena saya ingin menangkap base64 sebagai variabel (dan kemudian mengirimkannya ke Google Apps Script). Saya memanggil fungsi dengan:var my_file_as_base64 = getBase64(file)
dan kemudian mencoba mencetak ke konsol denganconsole.log(my_file_as_base64 )
dan baru sajaundefined
. Bagaimana cara menetapkan base64 dengan benar ke variabel?Jika Anda mencari solusi berbasis janji, ini adalah kode @ Dmitri yang disesuaikan untuk itu:
sumber
Membangun pada Dmitri Pavlutin dan joshua.paling menjawab, inilah versi yang diperpanjang yang mengekstrak konten base64 (menghapus metadata di awal) dan juga memastikan bantalan dilakukan dengan benar .
sumber
resolve(reader.result.replace(/^.*,/, ''));
. Karena koma,
berada di luar alfabet base64, kita dapat menghapus apa pun yang muncul sampai dan termasuk koma. stackoverflow.com/a/13195218/1935128data:
, tanpa koma, jadi saya akan menjaga bagian pertama seperti apa adanya. Saya telah memperbarui jawabannya.Fungsi JavaScript btoa () dapat digunakan untuk mengubah data menjadi string yang disandikan base64
sumber
Berikut adalah beberapa fungsi yang saya tulis untuk mendapatkan file dalam format json yang dapat diedarkan dengan mudah:
sumber
sumber