РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
802 of 1392 menu

Метод storePublicly

Метод storePublicly применяется к объекту UploadedFile, который представляет загруженный через форму файл. Он сохраняет файл в публичное хранилище, делая его доступным по прямой ссылке. Первым параметром передаётся путь в хранилище, вторым - имя диска (необязательно). Если диск не указан, используется диск по умолчанию из настроек.

Синтаксис

<?php $path = $uploadedFile->storePublicly($path, $disk); ?>

Пример

Давайте сохраним загруженный файл в директорию 'avatars' на публичном диске:

<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; class UserController extends Controller { public function updateAvatar(Request $request) { $user = User::find(1); if ($request->hasFile('avatar')) { $file = $request->file('avatar'); $path = $file->storePublicly('avatars', 'public'); $user->avatar_path = $path; $user->save(); echo "File saved: " . $path; } } } ?>

Результат выполнения кода:

"File saved: avatars/abc123def456.jpg"

Пример

Сохраним файл с автоматически сгенерированным именем в корень публичного хранилища. Имя файла формируется на основе содержимого и хеша, что гарантирует уникальность:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class FileController extends Controller { public function upload(Request $request) { $file = $request->file('document'); $path = $file->storePublicly('documents'); echo "Document uploaded to: " . $path; } } ?>

Результат выполнения кода:

"Document uploaded to: documents/xyz789abc123.pdf"

Пример

Метод storePublicly автоматически устанавливает публичную видимость для сохранённого файла. Это позволяет обращаться к нему через публичный URL без дополнительной аутентификации. Используем метод url для получения прямой ссылки:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class FileController extends Controller { public function showPublicFile(Request $request) { $file = $request->file('image'); $path = $file->storePublicly('gallery', 'public'); $url = Storage::disk('public')->url($path); echo "File URL: " . $url; } } ?>

Результат выполнения кода:

"File URL: http://example.com/storage/gallery/def456ghi789.png"

Смотрите также

  • метод store,
    который сохраняет файл с приватной видимостью
  • метод storeAs,
    который сохраняет файл с заданным именем
  • метод url,
    который возвращает публичный URL файла в хранилище
  • метод putFile,
    который сохраняет файл в хранилище из объекта UploadedFile
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить