Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyimpan Bahagian Pelayan Imej PNG daripada URI Data Base64 menggunakan PHP?

Bagaimana untuk Menyimpan Bahagian Pelayan Imej PNG daripada URI Data Base64 menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-09 16:43:17497semak imbas

How to Save PNG Images Server-Side from Base64 Data URIs using PHP?

Menyimpan Imej PNG Bahagian Pelayan daripada URI Data Base64

Untuk menukar rentetan base64 yang dijana oleh alat JavaScript "Canvas2Image" Nihilogic ke dalam fail PNG sebenar pada pelayan menggunakan PHP, anda perlu melakukan perkara berikut langkah:

  1. Ekstrak data imej base64. Asingkan pengepala URI data daripada data base64 sebenar. Berikut ialah coretan:

    $data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...';
    list($type, $data) = explode(';', $data);
    list(, $data) = explode(',', $data);
  2. Nyahkod data base64. Tukar semula data yang dikodkan kepada rentetan binari.

    $data = base64_decode($data);
  3. Simpan imej ke fail. Tulis data dinyahkod ke fail PNG pada pelayan.

    file_put_contents('/tmp/image.png', $data);
  4. Kaedah satu baris alternatif: Anda juga boleh menggunakan arahan satu baris ini untuk mengekstrak, menyahkod , dan simpan imej:

    $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
  5. Pastikan ralat yang betul pengendalian: Laksanakan mekanisme untuk mengesan URI data tidak sah, penyahkodan base64 yang gagal atau jenis imej yang salah, seperti:

    if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
        // Valid data URI
    } else {
        throw new \Exception('Invalid data URI');
    }
    
    if ($data === false) {
        throw new \Exception('Base64 decode failed');
    }

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Bahagian Pelayan Imej PNG daripada URI Data Base64 menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn