web-dev-qa-db-fra.com

comment vérifier si le répertoire existe avec Storage :: facade dans laravel?

Quelle est la contrepartie de:

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

utiliser Storage:: dans Laravel 5.1?

N'importe qui?

15
Chriz74

Essaye ça:

// 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

Si vous voulez vérifier un répertoire, essayez ceci:

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

Si vous voulez vérifier si un répertoire existe et en créer un s'il n'existe pas, ce code fonctionnera pour vous.

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

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

}
7
Prateek
$exists = Storage::disk('local')->has('**dirname**');
2
Tjeu Moonen

Une autre façon pour Laravel 5.5 d’utiliser Storage Storage. 

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

Eh bien, vous pouvez facilement le faire via File Facade File::isDirectory($YOURDIRECTORYPATHHERE);. Cela retournera un booléen basé sur l’existence! 

Il y a deux choses à vérifier: (1) que le chemin existe et (2) que le chemin est un répertoire.

Cela vérifiera que le chemin existe (syntaxe pour Laravel 5.2+), qu’il s’agisse d’un fichier ou d’un répertoire:

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

Une fois que vous savez qu'il existe, cela confirmera que le chemin est un répertoire:

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

La bibliothèque Flysystem sous-jacente mettra en cache ce qu'elle peut lors de l'inspection du système de fichiers (qu'il soit local ou distant). Ainsi, dans des circonstances normales, ces deux fonctions n'appelleront qu'un seul appel du système de fichiers.

0
Jason