我有一个脚本,用户可以上传带有客户端ID的照片。照片位于storage/app/public
和db中的文件名。然后我得到名字,并尝试显示照片或文件,但我不能。
这是我的代码:
'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) }}" />
和控制台日志:
如何显示文件?
答案 0 :(得分:2)
确保您已创建从存储到公共的符号链接。
要创建符号链接,您可以使用storage:link Artisan命令:
php artisan storage:link
您可以像这样访问存储网址以显示图片:
<img src="{{ url('/') . Storage::url($file_name) }}">
了解详情:https://laravel.com/docs/5.4/filesystem#the-public-disk
答案 1 :(得分:0)
公用磁盘适用于可公开访问的文件。默认情况下,
public
磁盘使用本地驱动程序并将这些文件存储在storage/app/public
中。要通过网络访问它们,您应创建从public/storage
到storage/app/public
的符号链接。要创建符号链接,您可以使用storage:link Artisan命令:
php artisan storage:link