首頁 >後端開發 >php教程 >如何在視圖中顯示 Laravel 儲存中的使用者頭像?

如何在視圖中顯示 Laravel 儲存中的使用者頭像?

Patricia Arquette
Patricia Arquette原創
2024-12-25 07:26:36399瀏覽

How to Display User Avatars from Laravel Storage in Views?

從Laravel 視圖中的儲存存取使用者頭像

背景:

Laravel 的儲存機制可讓您儲存使用者頭像和其他文件,但這些文件通常位於/storage 資料夾中,無法透過以下方式存取該資料夾指向/public資料夾的常規 HTTP 請求。

解決方案:

要在視圖中顯示儲存中的使用者頭像,有兩種主要方法:

1。建立符號連結

建議的方法是使用下列指令在/public/storage 資料夾和/storage/app/public 資料夾之間建立符號連結:

php artisan storage:link

這將創建一個快捷方式,允許您存取儲存文件,就像它們位於/public 資料夾中一樣。然後,您可以如下存取視圖中的頭像:

<img src="{{ asset('storage/avatars/' . $user->avatar) }}">

2.使用自訂路由

如果由於任何原因無法建立符號鏈接,您可以定義一個讀取和提供映像檔的自訂路由。以下是使用閉包路由的範例:

Route::get('storage/{filename}', function ($filename) {
    $path = storage_path('public/' . $filename);

    if (!File::exists($path)) {
        abort(404);
    }

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);

    return $response;
});

然後您可以使用/storage 路由存取視圖中的頭像:

<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">

注意事項:

  • 與使用相比,透過路由手動提供檔案可能會導致效能損失符號連結。
  • 確保保護您的自訂路由,以防止未經授權存取您的儲存檔案。

以上是如何在視圖中顯示 Laravel 儲存中的使用者頭像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn