Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP

Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP

藏色散人
藏色散人ke hadapan
2023-03-16 15:19:413326semak imbas

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.

Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP

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

Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP

  • Blob

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. ReadableStreamEntri dokumen gumpalan

Sebagai contoh

Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHP

  • Fail

  • Fail (

) antara muka menyediakan maklumat tentang fail dan membenarkan JavaScript dalam halaman web mengakses kandungannya. FileMasukan dokumen failSebagai contoh

Mari kita bincangkan tentang kaedah penukaran bersama Base64, Blob dan Fail dalam PHPSaya tidak akan memperkenalkan terlalu banyak, terutamanya tentang cara menukar.

2. Cara menilai ketiga-tiga format ini

1 Tentukan sama ada rentetan Base64

2 Tentukan sama ada ia adalah objek Blob
// 判断是否为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  false
PS:

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

3. Penukaran antara format

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 });
}
  • 2. Tukar Base64 kepada Blob

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
    adalah berbeza
  • Filereturn
  • 3 Blob to File

function blobToFile(blob) {
    return new File([blob], 'screenshot.png', { type: 'image/jpeg' })
}
Di sini dan
    sebenarnya adalah kaedah
  • . Parameter kedua di atas diluluskan Masuk, ini ditetapkan, parameter ini tidak begitu penting, anda boleh mengubah suai fungsi sendiri, kaedah telah disediakan, hanya menggunakannya secara langsung.

    Base64转Filenew File()

    Pembelajaran yang disyorkan: "
  • Tutorial Video PHP
"

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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam