setVisibility
Метод setVisibility класса Storage позволяет изменить видимость файла в файловой системе. Первым параметром передаётся путь к файлу, вторым - строка, определяющая уровень доступа: 'public' (публичный доступ) или 'private' (приватный доступ). Метод возвращает экземпляр класса Storage для построения цепочки методов.
Синтаксис
<?php
use Illuminate\Support\Facades\Storage;
Storage::setVisibility($path, $visibility);
?>
Пример
Сделаем файл 'public/img/photo.jpg' публичным:
<?php
use Illuminate\Support\Facades\Storage;
Storage::setVisibility('public/img/photo.jpg', 'public');
?>
После выполнения этого кода файл станет доступен для публичного просмотра.
Пример
Установим приватный доступ для конфиденциального документа:
<?php
use Illuminate\Support\Facades\Storage;
Storage::setVisibility('private/docs/report.pdf', 'private');
?>
Теперь файл 'private/docs/report.pdf' будет доступен только с использованием временных подписанных URL-адресов.
Пример
Проверим текущую видимость и изменим её, если нужно:
<?php
use Illuminate\Support\Facades\Storage;
$path = 'public/img/photo.jpg';
$currentVisibility = Storage::getVisibility($path);
if ($currentVisibility === 'private') {
Storage::setVisibility($path, 'public');
echo "Visibility changed to public";
} else {
echo "File is already public";
}
?>
Результат выполнения кода:
"Visibility changed to public"
Пример
Сделаем публичными все изображения в директории:
<?php
use Illuminate\Support\Facades\Storage;
$files = Storage::files('public/img');
foreach ($files as $file) {
if (str_ends_with($file, '.jpg') || str_ends_with($file, '.png')) {
Storage::setVisibility($file, 'public');
}
}
echo "All images are now public";
?>
Результат выполнения кода:
"All images are now public"
Смотрите также
-
метод
getVisibility,
который возвращает текущий уровень доступа к файлу -
метод
put,
который записывает содержимое в новый файл -
метод
delete,
который удаляет файл из файловой системы -
метод
url,
который возвращает публичный URL-адрес файла