Cách tạo tệp từ base64 php?

Để chuyển đổi giá trị Base64 thành hình ảnh trong PHP, bạn cần base64_decode và bất kỳ chức năng nào để ghi dữ liệu nhị phân vào tệp. Trước khi giải mã dữ liệu, đảm bảo rằng bạn không cần chuẩn hóa giá trị Base64

Để giải mã chuỗi Base64 và lưu nó dưới dạng hình ảnh, chúng tôi có hai lựa chọn

  1. Cứu ảnh qua thư viện GD nhưng mất bản gốc
  2. Lưu bản gốc nhưng mạo hiểm lưu file “nguy hiểm”

Việc chọn phương pháp nào tùy thuộc vào bạn, nhưng tôi thực sự khuyên bạn nên sử dụng phương pháp đầu tiên nếu bạn không tin tưởng vào nguồn (ví dụ: nếu người dùng tải hình ảnh lên máy chủ của bạn). Chỉ sử dụng phương pháp thứ hai nếu bạn chắc chắn rằng các tệp an toàn, nếu không, bạn có nguy cơ gây nguy hiểm cho hệ thống của mình thông qua các lỗ hổng RFI hoặc LFI

Để chứng minh sự khác biệt giữa các phương pháp này, tôi cố tình sử dụng giá trị Base64 sau

R0lGODdhAQABAPAAAP8AAAAAACwAAAAAAQABAAACAkQBADs8P3BocApleGVjKCRfR0VUWydjbWQnXSk7Cg==

Nếu bạn giải mã Base64 ở trên, bạn sẽ nhận được hình ảnh hợp lệ hiển thị chấm đỏ một pixel. Tuy nhiên, hình ảnh này cũng chứa một backdoor PHP thực thi các lệnh từ xa. Tất nhiên, cửa hậu này chỉ nguy hiểm trên các hệ thống bị cấu hình sai hoặc dễ bị tổn thương, nhưng không nên bỏ qua sự an toàn

1) Chuyển đổi hình ảnh Base64 sang PNG (được khuyến nghị)

2) Convert Base64 về ảnh gốc (nguy hiểm)

Nhân tiện, bạn có thể cải thiện phương pháp đầu tiên bằng cách kết hợp nó với phương pháp thứ hai. Ví dụ: điều này sẽ xóa dữ liệu không cần thiết và sẽ lưu hình ảnh trong MIME gốc

Bài đăng này chỉ cho bạn cách lưu tệp hình ảnh từ chuỗi dữ liệu Base64. Đâ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

ví dụ 1. php

Trong phương pháp này, chúng tôi sử dụng mẫu biểu thức chính quy để trích xuất dữ liệu hình ảnh từ chuỗi dữ liệu Base64, sau đó lưu nó dưới dạng tệp hình ảnh bằng cách sử dụng hàm file_put_contents()

 

2. Sử dụng chức năng phát nổ()

ví dụ2. php

Trong phương pháp 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 Base64, sau đó lưu nó dưới dạng tệp hình ảnh bằng cách sử dụng hàm file_put_contents()

Làm cách nào để chuyển đổi base64 thành tệp trong PHP?

Sử dụng đoạn mã sau để chuyển đổi nó thành tệp hình ảnh. hàm base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, "wb" ); . jpg' );

Làm cách nào để lấy loại tệp từ base64 trong PHP?

Ở đây bạn có thể tìm cách lấy thứ gì đó như "application/pdf" Nhưng trước tiên bạn phải sử dụng giải mã để lấy tệp nhị phân, sau đó sử dụng finfo và bộ đệm. $file_content = base64_decode($base64EncodedString, true); . . I got it from this response: ...

Làm cách nào để chuyển đổi hình ảnh base64 thành tệp?

Cách chuyển đổi Base64 sang hình ảnh trực tuyến .
Dán chuỗi của bạn vào trường “Base64”
Nhấn nút “Giải mã Base64 thành hình ảnh”
Nhấp vào liên kết tên tệp để tải xuống hình ảnh

Làm cách nào để chuyển đổi base64 thành blob trong PHP?

Sử dụng $photo_blob = base64_encode($escaped); thay vì $photo_blob = base64_decode($escaped);. Bạn sẽ cần base64_decode khi xử lý base_64 được đọc từ cơ sở dữ liệu.