web-dev-qa-db-ja.com

laravelのStorage :: facadeでディレクトリが存在するかどうかを確認する方法は?

対応するもの:

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

Laravel 5.1でStorage::を使用?

誰でも?

20
Chriz74

これを試して:

// 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');
28
prava

ディレクトリが存在するかどうかを確認し、存在しない場合は作成する場合、このコードが機能します。

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

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

}
11
Prateek

ディレクトリを確認したい場合は、これを試してください:

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

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

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

10
Alexey Mezenin
$exists = Storage::disk('local')->has('**dirname**');
4
Tjeu Moonen

Storage Facadeを使用するlaravel 5.5の別の方法。

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

in laravel 5.4 $exists = Storage::disk('public')->exists('images/test_image.jpg');-with 'public' filesystem.phpで設定されていた

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

'images/test_image.jpg'は画像のパスです。

3
vmars

File Facade File::isDirectory($YOURDIRECTORYPATHHERE);を介して簡単に実行できます。これは存在に基づいてブール値を返します!

if(!Storage::disk('public')->exists('your folder name'))
{
    //what you want to do
}
1
Shunhra Sarker

確認することが2つあります。(1)パスが存在すること、および(2)パスがディレクトリであること。

これは、ファイルかディレクトリかに関係なく、パスが存在することを確認します(Laravel 5.2+の構文):

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

存在することがわかったら、これはパスがディレクトリであることを確認します:

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

基盤となるFlysystemライブラリは、ファイルシステム(ローカルまたはリモート)を検査するときにできることをキャッシュするため、通常の状況では、これら2つの関数はファイルシステムを1回だけ呼び出します。

1
Jason

Storage::isDirectory()を簡単に使用できます。 Storage::class\Illuminate\Filesystem\Filesystemのインスタンスであり、特定のパスが存在するかどうか、およびディレクトリであるかどうかを確認するメソッドisDirectoryが含まれています。

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

すべてのディレクトリを配列として取得し、ディレクトリ(パス)があるかどうかを確認できます。

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