wake-up-neo.net

wie prüfe ich, ob das Verzeichnis mit Storage :: facade in laravel existiert?

Was ist das Gegenstück von:

if (!File::exists($path))

Storage:: in Laravel 5.1 verwenden?

Jemand?

15
Chriz74

Versuche dies:

// To check if File exists in Laravel 5.1
$exists = Storage::disk('local')->has('file.jpg');

// To check if File exists in Laravel 5.2
$exists = Storage::disk('local')->exists('file.jpg');
22
prava

Wenn Sie nach einem Verzeichnis suchen möchten, versuchen Sie Folgendes:

if (Storage::directories($directory)->has('someDirectory')) {
    ....

https://laravel.com/docs/5.1/filesystem#directories

https://laravel.com/docs/5.1/collections#method-has

8
Alexey Mezenin

Wenn Sie prüfen möchten, ob ein Verzeichnis vorhanden ist, und ein Verzeichnis erstellen, falls nicht vorhanden, funktioniert dieser Code für Sie.

if(!Storage::exists('/path/to/your/directory')) {

    Storage::makeDirectory('/path/to/create/your/directory', 0775, true); //creates directory

}
7
Prateek

in laravel 5.4 $exists = Storage::disk('public')->exists('images/test_image.jpg'); - mit 'public' das war config in filesystem.php

'public' => [
    'driver' => 'local',
    'root'   => public_path(),
    'url' => env('APP_URL').'/public',
    'visibility' => 'public',
],

'images/test_image.jpg' ist der Pfad des Bildes.

3
vmars
$exists = Storage::disk('local')->has('**dirname**');
2
Tjeu Moonen
if(!Storage::disk('public')->exists('your folder name'))
{
    //what you want to do
}
1
Shunhra Sarker

Ein anderer Weg für Laravel 5.5 mit Storage Facade. 

use Illuminate\Support\Facades\Storage;
if(Storage::exists('/mnt/files/file.jpg')) {
    dd('file esxists');
} else {
    dd('no file found');
}
0
gjerich

Nun, Sie können das einfach über File Facade File::isDirectory($YOURDIRECTORYPATHHERE); tun, was boolesche Werte basierend auf der Existenz zurückgibt. 

Es gibt zwei Dinge, die überprüft werden müssen: (1) ob der Pfad existiert und (2) dass der Pfad ein Verzeichnis ist.

Dadurch wird geprüft, ob der Pfad vorhanden ist (Syntax für Laravel 5.2+), unabhängig davon, ob es sich um eine Datei oder ein Verzeichnis handelt:

Storage::exists('your-path') // bool

Sobald Sie wissen, dass es existiert, wird bestätigt, dass der Pfad ein Verzeichnis ist:

Storage::getMetadata('your-path')['type'] === 'dir' 

Die zugrunde liegende Flysystem-Bibliothek speichert das, was sie bei der Untersuchung des Dateisystems (das lokal oder remote sein kann) kann, so dass diese beiden Funktionen im Normalfall nur einen Aufruf des Dateisystems durchführen.

0
Jason

Sie können einfach Storage::isDirectory() verwenden. Storage::class ist eine Instanz von \Illuminate\Filesystem\Filesystem und es enthält eine Methode isDirectory, mit der überprüft werden kann, ob ein bestimmter Pfad existiert und ob es sich um ein Verzeichnis handelt oder nicht.

    if(Storage::isDirectory("images")){
    // you code...
    }
0
Mostafa Talebi

Sie können alle Verzeichnisse als Array abrufen und dann überprüfen, ob das Verzeichnis (der Pfad) vorhanden ist.

$dir = 'dir/path';
$existingDirs = Storage::disk(env('FILE_SYSTEM'))->allDirectories();
if (!in_array($dir, $existingDirs)) {
    // dir doesn't exist so create it
}
0
omarjebari