无法将图像数据写入路径。拉拉韦尔

时间:2018-12-03 23:24:16

标签: php laravel image file filesystems

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

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

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

这是我的代码:

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

3 个答案:

答案 0 :(得分:0)

您是否将Intervention用于Image?几个月前,我遇到了类似的问题。我最终使用Imagestream()获取图像数据,然后使用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文件系统的更多信息。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我能够提出一个解决方案,而无需使用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编辑器,因此发送请求的方式受到限制。