Resize image before upload in Laravel 5.8
P粉608647033
P粉608647033 2023-09-04 12:56:10
0
1
485

I have this function to upload images via api in Laravel:

private function handleImage($image) { $exploded = explode(',', $image); $decoded = base64_decode($exploded[1]); if (Str::contains($exploded[0], 'jpeg')) { $extension = 'jpg'; } else { $extension = 'png'; } $fileName = Str::random() . '.' . $extension; $path = public_path() . '/images/products/' . $fileName; $file = file_put_contents($path, $decoded); $image = '/images/products/' . $fileName; return $image; }

How do I resize an image to a maximum side length of 500 pixels before uploading?

P粉608647033
P粉608647033

reply all (1)
P粉153503989

You can try using the Intervention Image package in Laravel to resize before uploading.

  1. Install software package:

    Composer Needs Intervention/Image

  2. Add the following code at the beginning of the file to import the required classes:

    Use Intervention\Image\ImageManagerStatic as image;

    Use Illuminate\Support\Str;

  3. Modify thehandleImagemethod as follows:

    private function handleImage($image) { $exploded = explode(',', $image); $decoded = base64_decode($exploded[1]); $image = Image::make($decoded); // Resize the image to a maximum size of 500px on the longest side $image->resize(500, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); // Set the file extension based on the original image format if (Str::contains($exploded[0], 'jpeg')) { $extension = 'jpg'; } else { $extension = 'png'; } $fileName = Str::random() . '.' . $extension; $path = public_path() . '/images/products/' . $fileName; $image->save($path); return '/images/products/' . $fileName; }

https://github.com/Intervention/image

Hope it helps you

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!