7

I am developing api in Laravel 5.4. I will receive the image in base64 format. How can I convert the base64 to image in Laravel?

Simon Shrestha
  • 103
  • 1
  • 1
  • 6
  • 4
    Possible duplicate of [Convert Base64 string to an image file?](https://stackoverflow.com/questions/15153776/convert-base64-string-to-an-image-file) – mehulmpt Jan 08 '18 at 15:22
  • Does this answer your question? [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) – miken32 Mar 20 '20 at 15:09

3 Answers3

5

this solution will deal with all image types

 $image = $request->input('image'); // image base64 encoded
 preg_match("/data:image\/(.*?);/",$image,$image_extension); // extract the image extension
 $image = preg_replace('/data:image\/(.*?);base64,/','',$image); // remove the type part
 $image = str_replace(' ', '+', $image);
 $imageName = 'image_' . time() . '.' . $image_extension[1]; //generating unique file name;
 Storage::disk('public')->put($imageName,base64_decode($image));
Yehia Salah
  • 59
  • 1
  • 3
0

I found the solution:

use Illuminate\Support\Facades\Storage;

function createImageFromBase64(Request $request)
{
   $file_data = $request->input('image_file');
   $file_name = 'image_' . time() . '.png'; //generating unique file name;

   if ($file_data != "") { // storing image in storage/app/public Folder
       Storage::disk('public')->put($file_name, base64_decode($file_data));
   }
}
Simon Shrestha
  • 103
  • 1
  • 1
  • 6
0

1- use package intervention image

use Illuminate\Support\Facades\Storage;
use Intervention\Image\ImageManagerStatic;
use Illuminate\Support\Str;

$logo      = ImageManagerStatic::make($request->logo)->encode('png');
            $logo_name = Str::random(40) . '.png';

            Storage::disk('s3')->put('products_seller/' . $logo_name, $logo);
ali hassan
  • 321
  • 2
  • 5