В Laravel 5, Как я могу получить список всех файлов в общей папке?
Я хотел бы автоматически создать список всех изображений в моей общей папке, но я не могу найти какой-либо объект, который мог бы помочь мне в этом.
на Storage
класс кажется хорошим кандидатом на работу, но он позволяет мне искать файлы только в папке хранения, которая находится за пределами общей папки.
3 ответов
вы можете создать другой диск для класса хранения. На мой взгляд, это было бы лучшим решением для вас.
на конфиг/файловые системы.в PHP в массиве дисков добавьте нужную папку. The общественные папка в этом случае.
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path().'/app',
],
'public' => [
'driver' => 'local',
'root' => public_path(),
],
's3' => '....'
затем вы можете использовать для хранения класс для работы в вашей общей папке следующим образом:
$exists = Storage::disk('public')->exists('file.jpg');
переменная $exists скажет вам, если .формат JPG внутри the общественные
Storage::disk('local')->files('optional_dir_name');
или
array_filter(Storage::disk('local')->files(), function ($item) {return strpos($item, 'png');});
обратите внимание, что диск laravel имеет files()
и allfiles()
. allfiles
является рекурсивным.
рассмотрите возможность использования glob. Не нужно усложнять PHP barebones вспомогательными классами / методами в Laravel 5.
<?php
foreach (glob("/location/for/public/images/*.png") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>