【问题标题】:Resizing an Image with Laravel Image Intervention won't let me save使用 Laravel 图像干预调整图像大小不会让我保存
【发布时间】:2018-11-21 05:31:53
【问题描述】:

我在使用 Laravel Image Intervention 调整图像大小时遇到​​了困难。我可以正常命名和保存图像,但是当我添加图像干预时,它不会将创建的新文件保存到文件夹中。

这是我的控制器中的内容

 //This all works
        $title = str_slug(request('title'));
        $filenameWithExt = $request->file('cover_image')->getClientOriginalName();
        $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
        $extension = $request->file('cover_image')->getClientOriginalExtension();
        $fileNameToStore= $title.'.'.$extension;
        $thumbnailpic= 'thumb'.'-'.$fileNameToStore;
//store image
        $path = $request->file('cover_image')->storeAs('public/cover_images', $fileNameToStore);

//Here is where I am trying to resize and it breaks

        $file = Input::file('cover_image');
        Image::make( $file->getRealPath() )->fit(340, 340)->save('public/cover_images/' . $thumbnailpic);

这是我得到的错误

"Can't write image data to path (public/cover_images/thumb-imagename.png)"

如果我删除两行调整大小代码,一切都会完美运行。我在本地运行它,并已将所有内容完全打开以获得权限。不知道还能做什么。谢谢!

【问题讨论】:

  • 目录cover_images是否存在?
  • 确实如此。 Laravel 本身创建文件夹并保存在那里没有问题,似乎图像干预有问题
  • ->save('public/cover_images/' . $thumbnailpic),对于干预,我相信这条路径始于 Linux 根目录。
  • 这是什么意思?

标签: laravel image resize intervention


【解决方案1】:

问题似乎与保存路径有关,您可以尝试给出这样的完整路径,

$targetPath = storage_path().'/app/public/cover_images/';
...
->save($targetPath . $thumbnailpic);

我希望这会有所帮助

【讨论】:

  • 遗憾的是,即使这样,我仍然收到错误“无法将图像数据写入路径 (public/cover_images/thumb-imagename.png)”
  • 你确定你的$file->getRealPath()返回图片吗?因为make需要获取真实图片路径作为参数。
  • 如何判断 $file->getRealPath() 是否返回图像?
  • 你可以使用dd dd($file->getRealPath()) 所以,你可以在浏览器上查看命令输出。
  • 当我使用它时,我得到“/private/var/tmp/phphqoRVm”我猜这不对?
【解决方案2】:

所以我终于想通了。我正在保存图像干预显然不喜欢的 public_path。所以我使用了下面的代码

    $source = storage_path().'/app/public/cover_images/'.$fileNameToStore;
    $target = storage_path().'/app/public/cover_images/' . $thumbnailpic;


    Image::make($source)->fit(140, 140)->save($target);

它成功了!

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    相关资源
    最近更新 更多