【问题标题】:Can't write image data to path. Laravel无法将图像数据写入路径。拉拉维尔
【发布时间】:2018-12-03 23:24:15
【问题描述】:

好的,我在任何地方都找不到帮助。

我的所有路径都设置为 755(这应该是足够的访问权限),但我仍然收到错误。

我的存储和公用文件夹已链接。

这是我的代码:

if (Input::hasFile('file')) {
  $image = Image::make($_FILES['file']['tmp_name']);
  $image->fit(200);
  $image->save('public/avatars/user77.jpg');
}

【问题讨论】:

  • 检查 SAVE 方法的根路径。可能会导致像 ... F:\web\public/avatars/user77.jpg 这样的错误路径
  • @Topher 您能否包括您遇到的错误。
  • 无法将图片数据写入路径(public/avatars/user77.jpg)

标签: php laravel image file filesystems


【解决方案1】:

您是否将Intervention 用于Image?几个月前我遇到了类似的问题。我最终使用stream()Image 获取图像数据,然后使用Laravel 的Storage 外观将其保存为这样。

use Illuminate\Support\Facades\Storage;

if (Input::hasFile('file')) {
  $image = Image::make($_FILES['file']['tmp_name'])->fit(200)->stream('jpg');
  Storage::put('public/avatars/user77.jpg', $image);
}

如果需要,请参阅this article 了解有关 Laravel 文件系统的更多信息。

【讨论】:

    【解决方案2】:

    检查目录是否存在,如果没有这样的目录,你将创建它:

     if (!file_exists($save_path)) {
                mkdir($save_path, 666, true);
            }
    

    【讨论】:

      【解决方案3】:

      我能够在不需要Intervention 的情况下提出解决方案,而我的项目不允许这样做:

      if ($request->hasFile('file')) {
        $image = file_get_contents($_FILES['file']['tmp_name']);
        Storage::disk('images')->put('user77.jpg', $image);
      }
      

      file_get_contents 据我了解,通常用于外部 url 和你有什么,但这个解决方案适用于我的图像。这特别方便,因为我使用的是Froala 编辑器,所以我发送请求的方式受到限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-26
        • 2020-03-29
        • 2019-02-25
        • 2020-05-07
        • 2016-07-24
        • 2023-01-09
        • 1970-01-01
        • 2015-11-06
        相关资源
        最近更新 更多