Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyimpan Imej PNG Base64 dengan Cekap pada Pelayan PHP?
Menyimpan Imej PNG Base64 daripada Perspektif Sisi Pelayan
Aplikasi web biasanya memanfaatkan alatan JavaScript seperti "Canvas2Image" untuk mengubah lukisan kanvas menjadi PNG imej yang dikodkan dalam base64. Tugas seterusnya adalah untuk menyimpan rentetan base64 ini pada pelayan. Artikel ini membincangkan cara untuk mencapai ini dalam PHP.
Pemprosesan Imej PNG Base64 dengan PHP
Untuk memproses imej base64 PNG dengan berkesan, langkah berikut adalah penting:
Contoh Kod PHP
Berikut ialah coretan kod PHP yang merangkumi proses ini:
<?php // Extract and decode the base64 data $data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...'; list($type, $data) = explode(';', $data); list(, $data) = explode(',', $data); $data = base64_decode($data); // Save the image to the server file_put_contents('/tmp/image.png', $data); ?>
Satu Pelapik Alternatif
Untuk alternatif yang ringkas, anda boleh menggunakan satu pelapik seperti ini:
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
Pemeriksaan Ralat dan Pengesahan
Untuk memastikan integriti data, pertimbangkan untuk melaksanakan pemeriksaan dan pengesahan ralat. Berikut ialah contoh:
if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) { $data = substr($data, strpos($data, ',') + 1); $type = strtolower($type[1]); // jpg, png, gif if (!in_array($type, ['jpg', 'jpeg', 'gif', 'png'])) { throw new \Exception('invalid image type'); } $data = str_replace(' ', '+', $data); $data = base64_decode($data); if ($data === false) { throw new \Exception('base64_decode failed'); } } else { throw new \Exception('did not match data URI with image data'); } file_put_contents("img.{$type}", $data);
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Imej PNG Base64 dengan Cekap pada Pelayan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!