Simon Shrestha
Simon Shrestha

Reputation: 103

How to convert base64 to image in Laravel 5.4?

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?

Upvotes: 7

Views: 18743

Answers (3)

ali hassan
ali hassan

Reputation: 449

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);

If you are using laravel, install intervention/image-laravel instead and then do this

$logo = \Image::read($request->logo)->encode();
$logo_name = Str::random(40) . '.png';

Storage::disk('s3')->put('products_seller/' . $logo_name, $logo);

Upvotes: 0

Yehia Salah
Yehia Salah

Reputation: 59

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));

Upvotes: 5

Simon Shrestha
Simon Shrestha

Reputation: 103

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));
   }
}

Upvotes: 0

Related Questions