Метод exists
Метод exists класса Storage проверяет, существует ли файл или директория по указанному пути. Первым параметром передаётся путь к файлу или директории. Второй параметр - опциональный, может принимать строку с названием диска. Метод возвращает булево значение.
Синтаксис
<?php
use Illuminate\Support\Facades\Storage;
Storage::exists($path);
Storage::exists($path, $disk);
Storage::disk($disk)->exists($path);
?>
Пример
Давайте проверим существование файла 'public/avatars/user.jpg':
<?php
use Illuminate\Support\Facades\Storage;
$path = 'public/avatars/user.jpg';
$res = Storage::exists($path);
if ($res) {
echo 'File exists';
} else {
echo 'File not found';
}
?>
Результат выполнения кода:
"File exists"
Пример
Проверим наличие директории 'private/reports':
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::exists('private/reports');
var_dump($res);
?>
Результат выполнения кода:
"bool(false)"
Пример
Проверим существование файла на конкретном диске 's3':
<?php
use Illuminate\Support\Facades\Storage;
$path = 'uploads/document.pdf';
$res = Storage::disk('s3')->exists($path);
echo $res ? 'File exists' : 'File missing';
?>
Результат выполнения кода:
"File missing"
Пример
Используем метод exists в проверке перед удалением файла:
<?php
use Illuminate\Support\Facades\Storage;
$path = 'public/temp/backup.zip';
if (Storage::exists($path)) {
Storage::delete($path);
echo 'File deleted';
} else {
echo 'Nothing to delete';
}
?>
Результат выполнения кода:
"Nothing to delete"