Что такое копия:
if (!File::exists($path))
используя Storage::
в Laravel 5.1?
Кто-нибудь?
Что такое копия:
if (!File::exists($path))
используя Storage::
в Laravel 5.1?
Кто-нибудь?
Попробуйте следующее:
// 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::directories($directory)->has('someDirectory')) {
....
$exists = Storage:: disk ('local') → has (' dirname');
в ларавеле 5.4 $ exists = Storage:: disk ('public') → существует ('images/test_image.jpg'); - с 'public', который был config в filesystem.php
'public' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
],
'images/test_image.jpg' - путь изображения.
Есть две вещи, которые нужно проверить: (1), что путь существует, и (2), что путь является каталогом.
Это проверит наличие пути (синтаксис для Laravel 5.2+), независимо от того, является ли это файлом или каталогом:
Storage::exists('your-path') // bool
Как только вы знаете, что это существует, это подтвердит, что путь - это каталог:
Storage::getMetadata('your-path')['type'] === 'dir'
Базовая библиотека Flysystem
будет кэшировать то, что она может при проверке файловой системы (которая может быть локальной или удаленной), поэтому в обычных обстоятельствах эти две функции будут выполнять только один вызов файловой системы.
Если вы хотите проверить, существует ли каталог и создать его, если он не существует, этот код будет работать для вас.
if(!Storage::exists('/path/to/your/directory')) {
Storage::makeDirectory('/path/to/create/your/directory', 0775, true); //creates directory
}
Вы можете получить все каталоги в виде массива, затем проверить, существует ли каталог (путь).
$dir = 'dir/path';
$existingDirs = Storage::disk(env('FILE_SYSTEM'))->allDirectories();
if (!in_array($dir, $existingDirs)) {
// dir doesn't exist so create it
}