I have a base64 encoded png, how do I write the image to a file in PHP?

前端 未结 3 699
我寻月下人不归
我寻月下人不归 2020-12-01 01:40

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(\'/         


        
相关标签:
3条回答
  • 2020-12-01 01:51

    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.

    0 讨论(0)
  • 2020-12-01 02:02

    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 :).

    0 讨论(0)
  • 2020-12-01 02:13

    I would think you'd want to decode with base64_decode() unless you are only using it like they are here HERE.

    The thing I am sure of is that you will want to sanitize $_REQUEST['id'] before using it.

    0 讨论(0)
提交回复
热议问题