Laravel - Image saved in storage folder not showing to user
我有这段代码可以将图像保存在 storage/app/uploads 文件夹中
1 2 3 4 5 6 7 8 9 10 11 |
这是我的刀片文件
1 2 | @foreach ($image_main as $images) <img src="{{"/storage/app/".$images->filename}} |
该文件保存在 storage/app/uploads 文件夹中,但它不向用户显示,它说找不到文件。我是否要在 filesystems.php 文件中设置任何内容
Laravel 存储文件系统是如此独特。当您进行任何上传时,它将上传到
1 | php artisan storage:link |
这个命令会将
只需按照有关如何放置和检索文件 url 的文档进行操作即可。我很确定您缺少的步骤是创建符号链接。
希望对你有帮助。
用户无法访问您的存储文件夹。
你必须通过 Storage::url() 方法:
1 | Storage::url("/storage/app/{$images->filename}") |
作为:
1 | <img src="{{ Storage::url("/storage/app/{$images->filename}") }}" alt="{{ $images->filename }}" /> |
https://laravel.com/docs/master/filesystem#retrieving-files
你已经在你的 .env 文件中添加了这一行
1 | FILESYSTEM_DRIVER = public |
之后你需要在终端中运行这个命令
1 | php artisan storage:link |
如果仍然无法正常工作,那么您需要在链接之前调用存储目录
1 | <img src="{{ asset('storage/'.$post->image) }}" width="120px" hight="120px" alt=""> |
如果你在 Mac 上使用
请按以下步骤操作:
像这样访问图像
除了这里的解决方案,请注意以下几点:
laravel 中的存储显示符号链接 - 没有这样的文件
Laravel - 如何恢复本地存储符号链接并刷新
您不能为此使用存储文件夹。您需要将图像移动到公用文件夹才能从 http.
访问
尝试在公共文件夹中创建一个名为 images 的文件夹并将图像上传到该文件夹??。然后您可以按如下方式访问图像。
1 | <img src="{{ public_path('images/image-name.png')}}" alt="" /> |
在尝试了几种解决方案后,我修复了它
删除符号链接
重建符号链接
1 | php artisan storage:link |
又成功了
试试这个方法,100%有效。
首先创建一个符号链接:
查看存储所有图像的公用文件夹,并在 src 中提及这些文件夹名称,并从数据库中获取您的图像名称。
示例:
1 | <img src="/images/posts/{{$post->featured_image}}"> |
或
示例:在浏览器中使用链接显示图像的完整路径
1 | <img src="{{asset('/images/posts/'.$post->featured_image)}}"> |