我正在尝试为我的应用存储和显示图片。图像存储正常但无法显示。
首先,我使用命令创建了符号链接:php artisan storage:link
config / filesystem.php看起来像:
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
存储图片:
if($request->hasFile('avatar'))
{
$path = $request->file('avatar')->store('avatars');
//$path=avatars/generated_image_name.extension
$user->avatar=$path;
$user->save();
}
//image storing under: (../storage/app/avatars)
显示要查看的图像:
<img src="storage/{{$user->avatar}}"
alt="no image!!"
class="img-circle"
style="width:150px;height:150px;">
尝试src="storage/app/{{$user->avatar}}"
&amp; src="{{$user->avatar}}"
但无法获取图像。不明白我做错了什么。
答案 0 :(得分:0)
讨厌成为那个人,但是你读过这些文档。您需要创建从public/storage
到storage/app/public
的符号链接。
The Public Disk
公共磁盘用于公开发布的文件 无障碍。默认情况下,公共磁盘使用本地驱动程序和 将这些文件存储在
storage/app/public
中。使它们可访问 从网上,你应该创建一个public/storage
的符号链接 到storage/app/public
。这个惯例将公开 一个目录中的可访问文件,可以轻松共享 使用零停机时间部署系统时的部署 Envoyer要创建符号链接,您可以使用
storage:link
Artisan 命令:php artisan storage:link
我再次查看文档或者阅读它们:)。
我认为您的默认存储空间为local
而非public
。在config/filesystems.php
中查看默认驱动程序。
Storing Files&gt;文件上传&gt;指定磁盘
或尝试这样的事情。
if($request->hasFile('avatar'))
{
$path = $request->file('avatar')->store(
'avatars/'.$request->user()->id, 'public'
);
//$path=avatars/generated_image_name.extension
$user->avatar=$path;
$user->save();
}