Laravel 6 Blade - 显示 public 文件夹中的所有图像?

Laravel 6 Blade - Display all images inside a public folder?

我无法找到一种方法来访问和显示位于 'public/images' 中的文件夹的内容。目标是有一个 blade 文件充当画廊并显示添加到该特定文件夹的所有图像。

我知道如何使用 asset('images/imagename.png') 访问特定文件,但我需要一次获取所有文件。

我可以简单地在 blade 文件中创建一个循环,还是需要为它创建一个 controller/route?

如果您知道目录,则可以使用 File 门面的 glob 方法。以下代码假定 public/images/ 文件夹中的每个文件都是图像。

<div class="container">
    @forelse (File::glob('public/images/*') as $file)
        <img src="{{ $file }}">
    @else
        <p id="no-images">No images in folder</p>
    @endforelse
</div>

正如 documentation 所暗示的,您可以通过以下方式获取特定目录中的所有文件:

Storage::files($directory);

所以,你可以这样迭代:

@foreach(Storage::files($directory) as $file)
    <img src="{{ $file }}">
@endforeach

试试这个:

@foreach(File::glob(public_path('images').'/*') as $path)
   <img src="{{ str_replace(public_path(), '', $path) }}">
@endforeach