在我的web应用程序中,我使用以下方法保存用户化身:

$avatarPath = request()->file('avatar')->store('avatars');

然后我将$avatarpath存储在数据库中。在我使用的页面上显示化身:
<img class="doc-avatar"  src="{{ Storage::disk('local')->url($doctor->image) }}" />

但你猜不会有任何图像,我也不知道为什么。
我创建了一个符号链接:
php artisan storage:link

还检查了storage/app/public/avatars中的avatars文件夹,我的图片就在那里。
我可以用
Storage::url($doctor->image);


Storage::size($doctor->image);

但如果我在浏览器中复制返回的url,则会出现404错误。
http://localhost:8080/storage/avatars/04it83vKYnobT7l8dNXwt1pE0VxiT9L5lQPQ6A1Z.jpeg
http://localhost/storage/avatars/04it83vKYnobT7l8dNXwt1pE0VxiT9L5lQPQ6A1Z.jpeg
两者都返回404。
这是我的config/filesystem.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下的文件。

关于php - 在Laravel响应404中检索图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48485589/

10-09 17:00