対応するもの:
if (!File::exists($path))
Laravel 5.1でStorage::
を使用?
誰でも?
これを試して:
// 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');
ディレクトリが存在するかどうかを確認し、存在しない場合は作成する場合、このコードが機能します。
if(!Storage::exists('/path/to/your/directory')) {
Storage::makeDirectory('/path/to/create/your/directory', 0775, true); //creates directory
}
ディレクトリを確認したい場合は、これを試してください:
if (Storage::directories($directory)->has('someDirectory')) {
....
$exists = Storage::disk('local')->has('**dirname**');
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');
}
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'
は画像のパスです。
File Facade File::isDirectory($YOURDIRECTORYPATHHERE);
を介して簡単に実行できます。これは存在に基づいてブール値を返します!
if(!Storage::disk('public')->exists('your folder name'))
{
//what you want to do
}
確認することが2つあります。(1)パスが存在すること、および(2)パスがディレクトリであること。
これは、ファイルかディレクトリかに関係なく、パスが存在することを確認します(Laravel 5.2+の構文):
Storage::exists('your-path') // bool
存在することがわかったら、これはパスがディレクトリであることを確認します:
Storage::getMetadata('your-path')['type'] === 'dir'
基盤となるFlysystem
ライブラリは、ファイルシステム(ローカルまたはリモート)を検査するときにできることをキャッシュするため、通常の状況では、これら2つの関数はファイルシステムを1回だけ呼び出します。
Storage::isDirectory()
を簡単に使用できます。 Storage::class
は\Illuminate\Filesystem\Filesystem
のインスタンスであり、特定のパスが存在するかどうか、およびディレクトリであるかどうかを確認するメソッドisDirectory
が含まれています。
if(Storage::isDirectory("images")){
// you code...
}
すべてのディレクトリを配列として取得し、ディレクトリ(パス)があるかどうかを確認できます。
$dir = 'dir/path';
$existingDirs = Storage::disk(env('FILE_SYSTEM'))->allDirectories();
if (!in_array($dir, $existingDirs)) {
// dir doesn't exist so create it
}