2017-07-22 237 views
1

我有一個腳本,用戶可以在其中上傳帶有客戶端ID的照片。照片位於storage/app/public,文件名稱以db爲單位。然後我得到名字,並嘗試顯示照片或文件,但我不能。 這裏是我的代碼:Laravel無法顯示圖像

'disks' => [ 

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

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

這裏是控制器:

public function file($id) 
{ 
    $client = Client::findOrFail($id); 
    return View::make('file', compact('client')); 
} 

file.blade.php

<img src="{{ public_path($file_name) }}" /> 

和控制檯日誌:

enter image description here

如何顯示文件?

+0

你如何確定'$ file_name'的值? –

回答

0

確保您已創建從存儲符號鏈接公衆。

要創建符號鏈接,您可以使用存儲:鏈接工匠命令:

php artisan storage:link 

您可以訪問存儲網址,這樣顯示圖像:

<img src="{{ url('/') . Storage::url($file_name) }}"> 

瞭解更多:https://laravel.com/docs/5.4/filesystem#the-public-disk

+0

什麼應該在這裏? FULLY_QUALIFIED_PATH @Waleed –

+0

更新了我的答案 – Waleed

+0

哦,這工作我愛你。謝謝 –

0

公用磁盤用於將要公開訪問的文件。默認情況下,public磁盤使用本地驅動程序並將這些文件存儲在storage/app/public中。爲了讓他們可以通過網絡訪問,您應該創建一個從public/storagestorage/app/public的符號鏈接。

要創建符號鏈接,您可以使用存儲:鏈接工匠命令:

php artisan storage:link 

https://laravel.com/docs/5.4/filesystem#the-public-disk

+0

還需要'Storage :: disk(「public」) - > url($ file_name)'獲取文件的URL – apokryfos

+0

@apokryfos該命令添加到刀片上? –

+0

我得到了「公共/存儲已經存在」。再次不知道該怎麼辦 –