@DocTypeMaster

Как конвертировать изображения в webp на voyager?

Я делаю сайт на laravel voyager и мне позарез нужно конвертировать все картинки загружаемые в webp формат. Я нашел какой контроллер отвечает за загрузку картинок но не могу понять куда вставить код конвертации следующего вида imagewebp($im, 'путь'); ( или же кто-то знает как это сделать другой функцией )

Вот код класса который загружает изображения:
public function upload(Request $request)
    {
        $fullFilename = null;
        $resizeWidth = 1800;
        $resizeHeight = null;
        $slug = $request->input('type_slug');
        $file = $request->file('image');
        $path = $slug.'/'.date('F').date('Y').'/';
        $filename = basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension());
        $filename_counter = 1;

        while (Storage::disk(config('voyager.storage.disk'))->exists($path.$filename.'.'.$file->getClientOriginalExtension())) {
            $filename = basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension()).(string) ($filename_counter++);
        }

        $fullPath = $path.$filename.'.'.$file->getClientOriginalExtension();

        $ext = $file->guessClientExtension();

        if (in_array($ext, ['jpeg', 'jpg', 'png', 'gif'])) {
            $image = Image::make($file)
                ->resize($resizeWidth, $resizeHeight, function (Constraint $constraint) {
                    $constraint->aspectRatio();
                    $constraint->upsize();
                });
            if ($ext !== 'gif') {
                $image->orientate();
            }
            $image->encode($file->getClientOriginalExtension(), 75);
    
            if (Storage::disk(config('voyager.storage.disk'))->put($fullPath, (string) $image, 'public')) {
                $status = __('voyager::media.success_uploading');
                $fullFilename = $fullPath;
            } else {
                $status = __('voyager::media.error_uploading');
            }
        } else {
            $status = __('voyager::media.uploading_wrong_type');
        }

        return "<script> parent.helpers.setImageValue('".Voyager::image($fullFilename)."'); </script>";
    }
  • Вопрос задан
  • 432 просмотра
Пригласить эксперта
Ответы на вопрос 1
@MikeDeveloper
Пользуюсь этим решением. Работает идеально
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы