在我的Web应用程序中,我使用此方法保存用户头像:
$avatarPath = request()->file('avatar')->store('avatars');
然后我$avatarPath存储在数据库中。 要在页面上显示头像,我使用:
<img class="doc-avatar" src="{{ Storage::disk('local')->url($doctor->image) }}" />
但正如你猜的那样,不会有任何图像,我不知道为什么。
我创建了一个符号链接:
php artisan storage:link
还检查了存储/应用程序/公共/头像中的头像文件夹,我的图像在那里。
我可以使用以下方法获取有关图像的所有元数据
Storage::url($doctor->image);
或
Storage::size($doctor->image);
但是如果我在浏览器中复制返回的 URL,就会出现 404 错误。
http://localhost:8080/storage/avatars/04it83vKYnobT7l8dNXwt1pE0VxiT9L5lQPQ6A1Z.jpeg
http://localhost/storage/avatars/04it83vKYnobT7l8dNXwt1pE0VxiT9L5lQPQ6A1Z.jpeg
两者都返回 404。
这是我的配置文件/文件系统.php
'default' => env('FILESYSTEM_DRIVER', 'public'),
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
会将图像添加到storage/app/public/avatars
,并仔细检查文件是否已同步到public/avatars
。 公用文件夹下的文件是唯一可访问的文件,而不是storage/app/public/avatars
下的文件。