Функция вмешательства / сохранения изображения всегда создает поврежденные файлы (0 байт) - PullRequest
0 голосов
/ 16 мая 2019

Я хочу сохранить изображения с помощью класса Image из Intervention после их обрезки.Моя проблема в том, что изображения, созданные таким образом, не отображаются в браузере.Я даже не могу открыть их в моей файловой системе => все файлы имеют 0 байтов.

Мой контроллер:

        public function store(Request $request)
        {
            $this->validate($request, [
                'image' => 'required',
                'link' => 'nullable|url|max:255',
                'description' => 'max:255'
            ]);

            $image = $request->file('image');
            $filename = 'carousel_' . time() . '.' . $image->getClientOriginalExtension();
            $this->cropAndSaveCarouselimage($image, $request->image_crop_x, $request->image_crop_y, $request->image_crop_width, $request->image_crop_height);

            $carousel = new CarouselImage();
            $carousel->link = $request->link;
            $carousel->description = $request->description;
            $carousel->filename = $filename;
            $carousel->save();

            return redirect(route('carouselimages.index'))->with('success', 'Carouselimage added successfully...');
        }

        public function cropAndSaveCarouselimage($originalImage, $image_crop_x, $image_crop_y, $image_crop_width, $image_crop_height)
        {
            if (isset($originalImage)) {
                $filename = 'carousel_' . time() . '.' . $originalImage->getClientOriginalExtension();
                $carouselImagesPath = public_path('/storage/resources/images/carousel') . $filename;

                $imageToCrop = Image::make(File::get($originalImage));
                $imageToCrop
                    ->crop($image_crop_width, $image_crop_height, $image_crop_x, $image_crop_y)
                    ->save($carouselImagesPath, 100);
            }
        }

Это должно создать новое обрезанное изображение в указанном общедоступном пути.Но он создает только 0-байтовый файл.

Когда я не пытаюсь $ imageToCrop -> ...-> save ();но $ imageToCrop -> ...-> response ();и вернуть это как ответ функции магазина, обрезанное изображение отображается в моем браузере.

1 Ответ

1 голос
/ 17 мая 2019

tcj ответил / решил мой вопрос / проблему! Проблема была в пропущенном / в конце $carouselImagesPath.

Так что я изменил его на: $carouselImagesPath = public_path('/storage/resources/images/carousel/') . $filename;

Теперь все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...