Hướng dẫn save image from base64 php - lưu hình ảnh từ base64 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];

Bài đăng này chỉ cho bạn cách lưu tệp hình ảnh từ chuỗi dữ liệu cơ sở64. Dưới đây là hai cách tiếp cận: sử dụng biểu thức chính quy và sử dụng hàm explode[] để trích xuất dữ liệu hình ảnh từ chuỗi base64.

1. Sử dụng biểu thức chính quy

example1.php

Bài Viết Liên Quan

Chủ Đề