首页 > 解决方案 > 如何在存储中显示图像?

问题描述

我像这样存储了我的文件。

public function update(Request $request)
{
   $user = auth()->user();
   $path = null;
   if ($request->hasFile('image'))
   {
        $file = $request->file('image');
        $nane = time();
        $extension = $file->getClientOriginalExtension();
        $fileName = $nane . '.' . $extension;
        $path = $file->storeAs('images/users', $fileName, 'public');
    }
    $user->image = $path;
    $user->save();
    return redirect()->back();
  }

我想显示一个图像,但它没有显示。

<img src="{{ asset('storage/') . auth()->user()->image }}" id="dialog" class="img-fluid rounded-circle cursor-pointer">

我确实跑了。

php artisan storage:link

文件系统.php

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
    ],

],

但我看到了这个演示。

我已经在 Laravel 存储中上传了用户头像。如何访问它们并将它们呈现在视图中?

禁止摄影

标签: laravel

解决方案


您的图像名称不在资产功能内。此外,由于您的 url 格式是在 filesystems.php 文件中定义的,因此无需在资产助手中写入“storage/”。

你应该写:

<img src="{{ asset(auth()->user()->image) }}" id="dialog" class="img-fluid rounded-circle cursor-pointer">

推荐阅读