Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyimpan Imej PNG Sisi Pelayan dengan Cekap daripada URI Data Base64?

Bagaimana untuk Menyimpan Imej PNG Sisi Pelayan dengan Cekap daripada URI Data Base64?

Linda Hamilton
Lepaskan: 2024-12-19 12:45:09
asal
1001 orang telah melayarinya

How to Efficiently Save Server-Side PNG Images from a Base64 Data URI?

Cara Menyimpan Sebelah Pelayan Imej PNG dengan Cekap daripada URI Data Base64

Apabila mencipta imej pada sisi klien menggunakan alat seperti Canvas2Image , selalunya timbul keperluan untuk menukar rentetan base64 yang terhasil kepada fail PNG sebenar pada pelayan. Ini boleh dicapai dengan berkesan menggunakan fungsi base64_decode() PHP.

Mengekstrak dan Menyahkod Data Base64

Untuk mengekstrak data imej daripada rentetan base64, ikut langkah berikut:

$data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...';

list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
Salin selepas log masuk

Kod ini baris demi baris:

  1. Memisahkan rentetan menggunakan ; untuk memisahkan jenis data dan data sebenar.
  2. Mengabaikan elemen pertama, iaitu jenis data dan hanya menyimpan data sebenar.
  3. Menyahkod data berkod base64 ke dalam bentuk binarinya menggunakan base64_decode().

Menyimpan PNG Fail

Setelah data diekstrak dan dinyahkod, anda hanya boleh menyimpannya ke pelayan sebagai fail PNG menggunakan file_put_contents():

file_put_contents('/tmp/image.png', $data);
Salin selepas log masuk

One-Liner Penyelesaian:

Sebagai alternatif, anda boleh menggabungkan pengekstrakan, penyahkodan dan penjimatan ke dalam satu baris ringkas:

$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
Salin selepas log masuk

Pengendalian Ralat:

Untuk memastikan integriti data, pertimbangkan untuk mengesahkan jenis imej dan semak kemungkinan ralat semasa penyahkodan base64:

if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
    // ... (additional error handling and processing)
}
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan