Search code examples
laravelfile-uploadlaravel-7laravel-livewire

laravel livewire intervention images


I am trying to use Intervention image with Livewire to reduce the sizes and I am not succeeding. They can guide me or tell me if Livewire may not allow it.

I am trying to pass this methodology:

foreach ($this->imagenes as $pathGaleria) {
             $imgUrl = $pathGaleria->store('imagenesPropiedades');

             $img = imgPropiedades::create([
               'url' => $imgUrl,
               'property_id' => $this->propiedadId
             ]);

to this other way:

foreach ($this->imagenes as $pathGaleria) {
            $imgUrl = $pathGaleria->store('imagenesPropiedades');
            Image::make($pathGaleria)->resize(1200, null, function ($constraint) {
                $constraint->aspectRatio();
            })
            ->save($imgUrl);
            $img = imgPropiedades::create([
                'url' => $imgUrl,
                'property_id' => $this->propiedadId
            ]);

        }

but the page remains blank. Thank you.


Solution

  • I found this today, may work for you

    https://gist.github.com/daugaard47/659984245d31b895d00ee5dcbdee44ec

    +

    $images = Collection::wrap($request->file('file'));

        $images->each(function ($image) use ($id) {
            $basename = Str::random();
            $original = $basename . '.' . $image->getClientOriginalExtension();
            $thumbnail = $basename . '_thumb.' . $image->getClientOriginalExtension();
    
            ImageManager::make($image)
                ->fit(250, 250)
                ->save(public_path('/images/' . $thumbnail));
    
            $image->move(public_path('/images/'), $original);
    
            Model::create([
              
            ]);
        });