📅  最后修改于: 2023-12-03 15:22:02.441000             🧑  作者: Mango
在 Laravel 6 中,我们可以使用存储(Storage)来管理所有的文件系统操作。不仅是本地文件系统,Storage 还支持诸如 S3 等云存储的文件系统。
本文将介绍如何在 Laravel 6 的视图中访问存储的文件,并提供实际示例及代码。
在我们开始之前,需要对 Laravel 存储模块进行配置。常见的配置方法是在 .env
文件中设置存储驱动程序和其它选项。
打开 .env
文件,查找以下行:
FILESYSTEM_DRIVER=local
默认情况下,Laravel 使用 "local"
作为默认存储驱动程序。如果您需要使用其它的驱动程序,比如 Amazon S3,可以设置 FILESYSTEM_DRIVER
环境变量为所需的驱动程序。
在 /config/filesystems.php
文件中,也可以配置您的存储驱动程序及其它选项。例如,下面的配置使用 S3 驱动程序:
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
让我们从本地文件系统中获取文件开始,假设存在文件路径 /storage/app/public/example.jpg
,需要在视图中显示该图片,我们可以使用以下代码:
<!-- Markdown Code: -->
![Example Image](/storage/app/public/example.jpg)
Markdown 渲染后,将直接显示图片。但是,在使用上述代码之前,我们需要确保 Laravel 正确地配置了存储路径。例如,如果我们使用 S3,该路径则需更换为 S3 上的实际路径。
如果需要使用动态的路径,可以在控制器中定义一个变量,在视图中进行替换。例如,定义变量 $path
,内容为路径 /storage/app/public/example.jpg
:
public function index()
{
$path = '/storage/app/public/example.jpg';
return view('example')->with('path', $path);
}
在视图中,将变量 $path
替换为以下代码即可:
<!-- Markdown Code: -->
![Example Image]({{$path}})
这样就可以在视图中动态地显示文件了。
除了访问文件,存储还支持其他常见的操作,例如将文件上传到服务器,从服务器中删除文件等。
如果需要上传文件,可以使用 store
方法:
public function store(Request $request)
{
$path = $request->file('file')->store('public');
return response()->json([
'path' => $path
]);
}
在上述示例中,我们通过 $request->file('file')
获取上传的文件,使用 store
方法将文件保存到 public 存储区域(例如在 Laravel 中执行 php artisan storage:link
时,将生成链接到 public/storage 目录的链接)。
使用这种方式生成的文件路径,可以在视图中显示文件时使用。
如果需要删除文件,可以使用 Storage 的 delete
方法:
Storage::delete('public/example.jpg');
在上述示例中,我们删除了路径为 storage/app/public/example.jpg
的文件。当然,实际的文件路径也可能不同,根据实际情况进行更改即可。
本文介绍了在 Laravel 6 中访问存储的方法,包括在视图中显示文件、打开并读取文件内容、上传文件和删除文件。通过这些技巧,可以更好地使用 Laravel 的存储模块,处理和管理文件。