在Image Storage中使用的函数中,我意识到我可能过度复杂了代码。我有两个例子都返回相同的结果。
第一个例子:
public function image(Request $request, User $user)
{
$file = $request->file('image');
$path = "user_" . $user->id . "_images";
$filename = $path . "/test.jpg";
Storage::disk('public')->put($filename, File::get($file));
return back();
}
此示例在两个方案中进行了测试。一旦在公共内部没有目录,并通过创建 public / user_1_images / test.jpg 返回...
第二种情况,我们已将 public / user_1_images / 作为空目录。意味着它已经存在。所以相反,它只是将文件放在那里而不创建文件夹。
第二个例子:
public function image(Request $request, User $user)
{
$file = $request->file('image');
$path = "user_" . $user->id . "_images";
if (!Storage::disk('public')->exists($path))
{
Storage::makeDirectory($path, 0755, true, true);
}
$filename = $path . "/test.jpg";
Storage::disk('public')->put($filename, File::get($file));
return back();
}
在这个例子中,我们检查是否存在public / user_1_images /,如果不存在,我们正在创建文件夹,然后将图像放入其中。
我是否需要这样做,如果我可以通过标题文件“user_1_images / test.jpg”自动检查/创建/不创建?
答案 0 :(得分:1)
这一切都取决于您使用的驱动程序。所有驱动程序必须实现 AdapterInterface 接口,这是他们必须满足的唯一要求。
我简要介绍了一些受欢迎的驱动程序:
因此,对于大多数(如果不是全部)驱动程序,您可以简单地写入路径,而不必担心目录是否存在。