Wie kann ich in Laravel 5 eine Liste aller Dateien in einem öffentlichen Ordner erhalten?

7

Ich möchte automatisch eine Liste aller Bilder in meinem öffentlichen Ordner erstellen, aber ich kann anscheinend kein Objekt finden, das mir dabei helfen könnte.

Die Klasse Storage scheint ein guter Kandidat für den Job zu sein, aber ich kann nur Dateien innerhalb des Speicherordners durchsuchen, der sich außerhalb des öffentlichen Ordners befindet.

    
kant312 09.07.2015, 11:47
quelle

3 Antworten

14

Sie könnten einen anderen Datenträger für die Storage-Klasse erstellen. Dies wäre meiner Meinung nach die beste Lösung.

Fügen Sie in config / filesystems.php im Festplatten-Array den gewünschten Ordner hinzu. In diesem Fall der Ordner public .

%Vor%

Dann können Sie die Klasse Speicher folgendermaßen in Ihrem öffentlichen Ordner verwenden:

%Vor%

Die Variable $ exists teilt Ihnen mit, ob Datei.jpg im Ordner public vorhanden ist, da die Speicherfestplatte 'public' öffentlich angezeigt wird Ordner des Projekts.

Sie können alle Sitzungen -Methoden aus der Dokumentation mit Ihrer benutzerdefinierten Festplatte verwenden. Fügen Sie einfach den Datenträger ('public') ein.

%Vor%

Ссылка

    
igs013 09.07.2015, 12:24
quelle
6

Erwägen Sie die Verwendung von glob. Keine Notwendigkeit, Barebones PHP mit Hilfsklassen / Methoden in Laravel 5 zu komplizieren.

%Vor%     
drmarvelous 09.07.2015 11:49
quelle
5

Storage::disk('local')->files('optional_dir_name');

oder

array_filter(Storage::disk('local')->files(), function ($item) {return strpos($item, 'png');});

Beachten Sie, dass die Laravel-Festplatte files() und allfiles() hat. allfiles ist rekursiv.

    
Tarek Adam 26.11.2015 05:14
quelle

Tags und Links