What's the proper way in PHP to create an image file (PNG), when I have the base64 encoding?
I've been playing around with:
file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);
do I need to decode? should I be using the gd library?
World's simplest online Portable Network Graphics image to base64 converter. Just import your PNG image in the editor on the left and you will instantly get a base64-encoded string on the right. Free, quick, and very powerful. Import a PNG – get base64.
data:image/png;base64 tells the browser that the data is inline, is a png image and is in this case base64 encoded. The encoding is needed because png images can contain bytes that are invalid inside a HTML document (or within the HTTP protocol even).
header('Content-Disposition: attachment;filename="test. png"'); header('Content-Type: application/force-download'); echo base64_decode($base64strImg);
You need to use base64_decode(). AND. Sometimes it is not sufficient. Here is all code that you need:
$img = $_POST['data']; $img = str_replace('data:image/png;base64,', '', $img); $img = str_replace(' ', '+', $img); $fileData = base64_decode($img); //saving $fileName = 'photo.png'; file_put_contents($fileName, $fileData);
P.S. I used this code to get PNG image from html canvas.
My best guess is that you simply need to call base64_decode()
on $_REQUEST['data']
before writing it to the file. That should be plenty enough :).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With