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

// Yêu cầu PHP5
Xác định ('upload_dir', 'hình ảnh/');'UPLOAD_DIR', 'images/');
$ img = $ _post ['img'];img = $_POST['img'];
$ img = str_replace ('data: hình ảnh/png; base64,', '', $ img);img = str_replace('data:image/png;base64,', '', $img);
$ img = str_replace ('', '+', $ img);img = str_replace(' ', '+', $img);
$ data = base64_decode ($ img);data = base64_decode($img);
$ file = upload_dir. uniqid (). '.png';file = UPLOAD_DIR . uniqid() . '.png';
$ thành công = file_put_contents ($ file, $ data);success = file_put_contents($file, $data);
In $ thành công? $ Tệp: 'Không thể lưu tệp.';$success ? $file : 'Unable to save the file.';
?>

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

<?php

$base64DataString = 'data:image/jpeg;base64,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';

// extract image data from base64 data string
$pattern = '/data:image\/(.+);base64,(.*)/';
preg_match($pattern, $base64DataString, $matches);

// image file extension
$imageExtension = $matches[1];

// base64-encoded image data
$encodedImageData = $matches[2];

// decode base64-encoded image data
$decodedImageData = base64_decode($encodedImageData);

// save image data as file
file_put_contents("image.{$imageExtension}", $decodedImageData);

Theo cách tiếp cận này, chúng tôi sử dụng mẫu regex để trích xuất dữ liệu hình ảnh từ chuỗi dữ liệu & nbsp; base64 và sau đó lưu nó dưới dạng hình ảnh & nbsp; tệp sử dụng hàm file_put_contents().

2. Sử dụng hàm Explode ()

example2.php

<?php

$base64DataString = 'data:image/jpeg;base64,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';

list($dataType, $imageData) = explode(';', $base64DataString);

// image file extension
$imageExtension = explode('/', $dataType)[1];

// base64-encoded image data
list(, $encodedImageData) = explode(',', $imageData);


// decode base64-encoded image data
$decodedImageData = base64_decode($encodedImageData);

// save image data as file
file_put_contents("image.{$imageExtension}", $decodedImageData);

Theo cách tiếp cận này, chúng tôi sử dụng hàm explode() để trích xuất dữ liệu hình ảnh từ chuỗi dữ liệu & nbsp; base64 và sau đó lưu nó dưới dạng hình ảnh & nbsp; tệp sử dụng hàm file_put_contents().

Làm thế nào để lưu hình ảnh cơ sở64 trong PHP?

Điều này có thể được thực hiện với chức năng trợ giúp của file_get_contents () của php.then chuyển dữ liệu thô này cho hàm base64_encode () để mã hóa.Hàm bắt buộc: Base64_encode () Hàm hàm base64_encode () là một hàm sẵn có trong PHP được sử dụng để mã hóa dữ liệu có cơ sở MIME64.with the help of file_get_contents() function of PHP. Then pass this raw data to base64_encode() function to encode. Required Function: base64_encode() Function The base64_encode() function is an inbuilt function in PHP which is used to Encodes data with MIME base64.

Làm thế nào để lấy hình ảnh từ chuỗi base64 trong PHP?

$ imgstr = $ _post ['imgdata'];// Lấy loại MIME và dữ liệu với regex để thuận tiện cho IF (! Preg_match ('/data: ([^;]*); base64, (. // Grab the MIME type and the data with a regex for convenience if (! preg_match('/data:([^;]*);base64,(.

Làm thế nào chuyển đổi Base64 thành hình ảnh và lưu sang thư mục trong PHP?

Chuyển đổi cơ sở64 sang tệp hình ảnh và ghi vào thư mục trong PHP với .....
define('UPLOAD_DIR','images/');.
$image_parts=explode(";base64,",$_POST['image'.
$image_type_aux=explode("image/",$image_parts..
$image_type=$image_type_aux[1];.
$image_base64=base64_decode($image_parts..
$ file = upload_dir ..

Làm cách nào để lưu hình ảnh Base64 trong Laravel?

'png';\ File :: đặt (Storage_path (). '/'. $ ImageName, base64_decode ($ Image));Đây là mã cho Covert bất kỳ chuỗi Base64 cho hình ảnh và lưu trữ chủ đề trong một đường dẫn cục bộ với tên tệp.\File::put(storage_path(). '/' . $imageName, base64_decode($image)); This the Code for covert any Base64 String to Image and store theme in a local path with file name.