干预/图像保存功能始终创建损坏的文件(0字节)

时间:2019-05-16 00:33:25

标签: php laravel intervention

我想在裁剪后使用Intervention中的Image类保存图像。我的问题是,以这种方式创建的图像不会显示在浏览器中。我什至无法在我的文件系统中打开它们=>所有文件都有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 个答案:

答案 0 :(得分:1)

tcj回答/解决了我的问题/问题! 问题是/末尾缺少$carouselImagesPath

所以我将其更改为:$carouselImagesPath = public_path('/storage/resources/images/carousel/') . $filename;

现在一切正常。