在Laravel中,如何显示存储/应用程序/中的图像文件并显示?

In Laravel how to display the the image files from storage/app/ and display?

提问人:Asjid Ali 提问时间:10/12/2023 最后编辑:DominiqueAsjid Ali 更新时间:10/12/2023 访问量:50

问:

我创建了 laravel 项目,问题是管理员用户沿着 jpg 文件填写表单,并且文件正在上传并存储在存储目录中,但图像旨在向公共用户显示,它没有显示。

{{url('/storage/app/news/' . $val2->id . '.png') }}"

尽管该文件存在于该位置。

我尝试更改服务器的文件读取模式权限。

我还没有进入部署阶段,但问题出在Laravel开发服务器中。

文件未在 Web 上显示,而文件存在,不知道访问问题或其他问题。

php linux laravel 存储 laravel-10

评论


答:

1赞 eggchops 10/12/2023 #1

几个想法!你可能希望确保你已经运行,在文件的上传位置和你想在应用程序中访问它们的位置之间建立符号链接。php artisan storage:link

您可能还希望将 Laravel 的 helper 函数与 而不是 结合使用。这应该可以保证您始终访问存储目录中的文件。因此,您的代码将如下所示:storage_path()asset()url()

"{{ asset(storage_path('app/news/' . $val->id . '.png')) }}"

如果您想查看,在 Laravel 文档中有一些关于此的注释。

评论

0赞 Asjid Ali 10/12/2023
我看过 Laravel 文档,但没有在那里建立。但是当我将新闻目录放在 storage/app/public 中时,我解决了这个问题,它由 asset 函数 asset('storage/news/' . $val 2->id .'.png') 但你说的也是对的,你能参考任何教程或我可以根据你的观点澄清我的困惑的东西吗?
1赞 eggchops 10/12/2023
哦,太好了,很高兴你解决了!不确定具体的教程,但 Laracasts 在他们的 Laravel From Scratch 系列中非常深入地介绍了存储/检索图像文件。