如何在 laravel 5 中使用存储外观获取文件 URL?

2022-08-30 07:49:36

我一直在尝试使用新的Flysystem与Laravel 5的集成。我正在存储到数据库的“本地化”路径,并让存储外观完成路径。例如,我存储和使用screenshots/1.jpg

Storage::disk('local')->get('screenshots/1.jpg')

Storage::disk('s3')->get('screenshots/1.jpg') 

我可以在不同的磁盘上检索相同的文件。

get检索文件内容,但我希望在我的视图中使用它,如下所示:

<img src="{{ Storage::path('screenshots/1.jpg') }}" />

但是path,或任何能够检索完整路径的东西都不可用(据我所知)。那么如何返回完整路径呢?或者,我想知道这是否是设计使然?如果是这样,为什么我无法获得完整的路径?或者,我是否完全走错了路?


答案 1

存储磁盘的路径为:

$storagePath  = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix()

我不知道任何更短的解决方案...

您可以将$storagePath分享到您的视图,然后只需调用

$storagePath."/myImg.jpg";

答案 2

此方法自 Laravel 5.4 以来一直存在,您可以通过以下方式获取它:

$path = Storage::disk('public')->path($filename);

推荐