📅  最后修改于: 2023-12-03 14:43:47.867000             🧑  作者: Mango
在 Laravel 中,处理上传图片是很常见的任务。图片上传后,通常存储在磁盘上,但是如何访问和显示这些图片呢?本文将介绍如何在 Laravel 中访问和显示存储中上传的图像。
在 Laravel 中上传文件,通常使用 Laravel 文件系统 来完成。你需要在配置文件 config/filesystems.php 中定义磁盘,以便可以在该磁盘上存储或读取文件。
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
// ...
],
通常,我们会在公共磁盘 public 中存储上传的文件,以便可以通过 URL 直接访问这些文件。在上述配置中,我们定义 public 磁盘的文件根目录为 storage/app/public。在执行上传前,我们需要先执行以下命令以创建软链接:
php artisan storage:link
在执行完毕后,你可以在 public/storage 目录下找到存储的文件。
访问存储在磁盘上的图片,首先需要获取该图片的路径。在 Laravel 中,可以使用 Storage Facade 来获取文件的路径。
$url = Storage::url('file.jpg');
上述代码将返回一个 URL,该 URL 可以直接访问存储在磁盘上的 file.jpg 文件。
如果你需要获取文件的绝对路径,则可以使用 storage_path 函数。
$path = storage_path('app/public/file.jpg');
上述代码将返回存储在 public 磁盘中的 file.jpg 文件的绝对路径。
通常,在网站或应用程序中,用户需要查看这些上传的文件,例如图片、音频或视频等。你可以使用 Laravel Blade 模板引擎 来显示图片。
<img src="{{ Storage::url('file.jpg') }}" alt="file">
上述代码使用 Storage Facade 获取图片的 URL,并将其添加到 img 标签中的 src 属性中。
在 Blade 模板中,你也可以结合 Laravel Mix 来指定文件版本号,以便在文件内容发生更改时自动更新缓存。
<img src="{{ mix('storage/images/logo.png') }}" alt="logo">
上述代码使用 mix 函数获取图片的 URL,该函数在 public 目录下生成一个版本文件,并在文件内容发送更改时自动更新缓存。
在 Laravel 中访问和显示存储中上传的图片,通常需要使用到 Laravel 文件系统和 Storage Facade。通过使用这些工具,你可以轻松访问和显示文件,以及管理存储中的文件。