0

I have an cropped image, Its src is like data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAY..... When I hit this URL it is opening in my own system, not in other systems. How to MOve to folder hence save it?

Saravanan DS
  • 278
  • 3
  • 14
  • 1
    https://stackoverflow.com/questions/11511511/how-to-save-a-png-image-server-side-from-a-base64-data-string – TarangP Dec 26 '17 at 06:25
  • Possible duplicate of [How to save a PNG image server-side, from a base64 data string](https://stackoverflow.com/questions/11511511/how-to-save-a-png-image-server-side-from-a-base64-data-string) – Steve Byrne Dec 26 '17 at 06:56

1 Answers1

1
if (preg_match('/^data:image\/(\w+);base64,/', $data, $type)) {
//THIS FOR VALIDATION(CHECK VALID BASE64)
    $data = substr($data, strpos($data, ',') + 1);
    $type = strtolower($type[1]); // jpg, png, gif
    //GET FILE NAME AND EXTENSION

    if (!in_array($type, [ 'jpg', 'jpeg', 'gif', 'png' ])) {
        throw new \Exception('invalid image type');
    }
    //EXTENSION VALIDATION

    $data = base64_decode($data);
    //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);
//FINALLY GET  IMAGE
TarangP
  • 2,711
  • 5
  • 20
  • 41