📜  在 laravel 8 中创建自动图像路径文件夹 - PHP (1)

📅  最后修改于: 2023-12-03 15:07:42.288000             🧑  作者: Mango

在 Laravel 8 中创建自动图像路径文件夹 - PHP

在 Laravel 8 中,可以通过使用辅助函数public_path()Storage类来自动创建图像路径文件夹。以下是实现此功能的步骤:

步骤 1:创建存储链接

如果您还没有在公共文件夹中创建存储链接,则需要通过运行以下 Artisan 命令来创建它:

php artisan storage:link

此命令将在public文件夹中创建一个指向storage/app/public文件夹的符号链接。

步骤 2:在控制器中使用 Storage 类

在您的控制器中,您需要使用Storage类来访问图像存储。您可以通过putFile()put()方法来将图像存储到指定的文件夹中。

使用putFile()方法

以下示例演示如何使用putFile()方法从请求中存储上传的图像文件:

public function store(Request $request)
{
    $file = $request->file('image');
    $path = Storage::putFile('public/images', $file);

    // Do something with the image path
}

此代码将尝试将上传的图像文件存储到storage/app/public/images文件夹中,并将返回的图像路径存储在$path变量中。

使用put()方法

以下示例演示如何使用put()方法将指定的图像文件存储到指定的文件夹中:

public function store(Request $request)
{
    $image = file_get_contents($request->file('image'));
    $path = Storage::put('public/images/'.$request->file('image')->getClientOriginalName(), $image);

    // Do something with the image path
}

此代码将尝试将$image变量中指定的图像文件存储到storage/app/public/images/文件名文件夹中,并将返回的图像路径存储在$path变量中。

步骤 3:使用 public_path() 函数创建文件夹

在使用Storage类创建文件夹之前,您需要创建文件夹的路径。使用public_path()函数可以轻松创建完整的文件夹路径。

以下是如何使用public_path()函数创建图像文件夹的示例代码:

public function store(Request $request)
{
  $dirPath = public_path('images/' . $request->user()->id);
  if (!file_exists($dirPath)) {
    mkdir($dirPath, 0777, true);
  }

  $file = $request->file('image');
  $path = Storage::putFile('public/images/' . $request->user()->id, $file);

  // Do something with the image path
}

此代码将使用public_path()函数创建位于public/images/用户ID文件夹中的图像文件夹,并将上传的图像文件存储在storage/app/public/images/用户ID文件夹中。

现在,您已经知道如何在 Laravel 8 中自动创建图像路径文件夹。下载代码片段并开始使用吧!