Laravel's Storage facade makes it easier to get list of files within a directory. However if you are looking to get a list of files within the public directory, or any other directory within the public directory.
Here is how you can do this.
Open the file filesystems.php
located inside config directory. Make sure you have a disk that points to the public path of your application. If not go ahead and add the disk
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'public-folder' => [
'driver' => 'local',
'root' => public_path(),
],
Run config clear
php artisan config:clear
You can name the disk name as per your choice, I have given disk name as public-folder
for the demonstration.
To get all the files in the public folder you can run
Storage::disk('public-folder')->allFiles();
To get all the files in a folder inside public folder, you can run
Storage::disk('public-folder')->allFiles('css');
Comments