Hướng dẫn how to save image from base64 in php? - làm thế nào để lưu hình ảnh từ base64 trong php?

Bạn cần trích xuất dữ liệu hình ảnh cơ sở64 từ chuỗi đó, giải mã nó và sau đó bạn có thể lưu nó vào đĩa, bạn không cần GD vì nó đã là PNG.

$data = 'data:image/png;base64,AAAFBfj42Pj4'; list($type, $data) = explode(';', $data); list(, $data) = explode(',', $data); $data = base64_decode($data); file_put_contents('/tmp/image.png', $data);

Và như một người một liner:

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

Một phương pháp hiệu quả để trích xuất, giải mã và kiểm tra lỗi là:

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);

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Chủ đề