Saya benar-benar memiliki input file dan saya ingin mengambil data Base64 dari file tersebut.
Saya mencoba:
$('input#myInput')[0].files[0]
untuk mengambil data. Tapi itu hanya memberikan nama, panjang, jenis konten tetapi bukan data itu sendiri.
Saya sebenarnya membutuhkan data ini untuk mengirimnya ke Amazon S3
Saya sudah menguji API dan ketika saya mengirim data melalui formulir html dengan tipe encode "multipart / form-data" berfungsi.
Saya menggunakan plugin ini: http://jasny.github.com/bootstrap/javascript.html#fileupload
Dan plugin ini memberi saya preview gambar dan saya mengambil data di atribut src dari preview gambar. Tetapi ketika saya mengirim data ini ke S3 tidak berfungsi. Saya mungkin perlu menyandikan data seperti "multipart / form-data" tetapi saya tidak tahu mengapa.
Apakah ada cara untuk mengambil data ini tanpa menggunakan formulir html?
sumber
Jawaban:
Anda dapat mencoba FileReader API. Lakukan sesuatu seperti ini:
sumber
\xc3\xbf\xc3
alih-alih mendapatkan encode ini\xff\xd8\xff
untuk 3 karakter pertama dari gambar saya. Apa yang harus saya gunakan untuk mendapatkan encode kedua untuk gambar saya?elemen file input:
dapatkan file:
sumber
$('.myClass').prop('files', myFile );
Saya membuat objek data formulir dan menambahkan file:
dan saya mendapat:
di header dikirim. Saya dapat mengkonfirmasi ini berfungsi karena file saya dikirim dan disimpan dalam folder di server saya. Jika Anda tidak tahu cara menggunakan objek FormData ada beberapa dokumentasi online, tetapi tidak banyak. Formulir Eksplorasi Objek Data oleh Mozilla
sumber
Html:
jQuery:
Kami ingin mendapatkan elemen pertama saja, karena prop ('file') mengembalikan array.
sumber
input
elemen, tipefile
Pada
input
perubahan Anda gunakanFileReader
objek dan bacainput
properti file Anda :FileReader akan memuat file Anda dan
fileReader.result
Anda memiliki data file dalam format Base64 (juga tipe konten file (MIME), teks / polos, gambar / jpg, dll)sumber
API FileReader dengan jQuery, contoh sederhana.
Untuk membaca sebagai teks ... batalkan komentar
//fr.readAsText(file);
baris dan komentarfr.readAsDataURL(file);
sumber
Unduh file di atas bernama fileinput, tambahkan path ke halaman indeks Anda.
sumber