📅  最后修改于: 2023-12-03 15:07:42.288000             🧑  作者: Mango
在 Laravel 8 中,可以通过使用辅助函数public_path()
和Storage
类来自动创建图像路径文件夹。以下是实现此功能的步骤:
如果您还没有在公共文件夹中创建存储链接,则需要通过运行以下 Artisan 命令来创建它:
php artisan storage:link
此命令将在public
文件夹中创建一个指向storage/app/public
文件夹的符号链接。
在您的控制器中,您需要使用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
变量中。
在使用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 中自动创建图像路径文件夹。下载代码片段并开始使用吧!