Rumah > Artikel > pembangunan bahagian belakang > Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP
Artikel ini membawakan anda pengetahuan yang berkaitan tentang php terutamanya membincangkan bagaimana Base64, Blob dan Fail ditukar kepada satu sama lain? Rakan-rakan yang berminat boleh lihat di bawah ini semoga bermanfaat untuk semua.
Kata Pengantar
Apabila mendapat gambar, saya menghadapi situasi di mana saya perlu menukar format, jadi saya merekodkannya dan berkongsi ia.
Teks
1 Pengenalan asas kepada format
Base64
Base64 ialah salah satu kaedah pengekodan yang paling biasa untuk menghantar kod bait 8-bit di Internet Base64 ialah kaedah mewakili data binari berdasarkan 64 aksara yang boleh dicetak Entri dokumen Base64
Sebagai contoh
objek mewakili objek seperti fail data mentah yang tidak boleh diubah. Datanya boleh dibaca dalam format teks atau binari, atau ditukar kepada Blob
untuk manipulasi data. ReadableStream
Entri dokumen gumpalan
Sebagai contoh
) antara muka menyediakan maklumat tentang fail dan membenarkan JavaScript dalam halaman web mengakses kandungannya. File
Masukan dokumen failSebagai contoh
Saya tidak akan memperkenalkan terlalu banyak, terutamanya tentang cara menukar.
2. Cara menilai ketiga-tiga format ini
// 判断是否为base64格式字符串 function isBase64(str) { //正则表达式判断 var reg = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i; return reg.test(str) //返回 true or false }
3 Tentukan sama ada ia adalah objek Fail
console.log(data instanceof Blob) //ture or false
console.log(data instanceof File && !data instanceof Blob) //ture or falsePS:
Kedua-dua Blob dan Fail menggunakan instanceof untuk menentukan sama ada ia adalah jenis yang sepadan dataAda satu perkara yang perlu diperhatikan , objek Fail juga merupakan objek Blob Kerana Fail mewarisi daripada Blob, logik penghakiman boleh ditakrifkan sendiri
1 Menukar .Base64 kepada Fail
memerlukan lulus dua parameter, yang pertama ialah data dan yang kedua ialah rentetan nama fail tersuai
function dataURLtoFile(dataurl, filename) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], filename, { type: mime }); }
pada asasnya sama seperti menukarkan
function dataURLtoBlob(dataurl, filename) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); }, kecuali ayat terakhir
File
return
function blobToFile(blob) { return new File([blob], 'screenshot.png', { type: 'image/jpeg' }) }Di sini dan
Base64转File
new File()
Atas ialah kandungan terperinci Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!