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

Метод store

Метод store класса WithFileUploads сохраняет загруженный файл в выбранную директорию на локальном диске или облачном хранилище. В метод передаётся путь относительно корня диска, по которому будет сохранён файл. Вторым параметром можно указать имя диска. По умолчанию используется диск public.

Метод возвращает строку с относительным путём к сохранённому файлу, который можно сохранить в базе данных или использовать для генерации ссылки на файл.

Синтаксис

$path = $this->file->store($path, $disk);

Пример

Давайте создадим компонент для загрузки аватара пользователя и сохраним файл в директорию avatars на диске public:

<?php namespace AppLivewire; use LivewireComponent; use LivewireWithFileUploads; class Profile extends Component { use WithFileUploads; public $avatar; public $avatarPath; public function save() { $this->validate([ 'avatar' => 'image|max:1024', ]); $this->avatarPath = $this->avatar->store('avatars', 'public'); } public function render() { return view('livewire.profile'); } } ?>
<form wire:submit.prevent="save"> <input type="file" wire:model="avatar"> @error('avatar') <span>{{ $message }}</span> @enderror <button type="submit">Save</button> @if ($avatarPath) <p>File saved: {{ $avatarPath }}</p> @endif </form>

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

"avatars/abc123def456.jpg"

Пример

Давайте сохраним файл на пользовательском диске, например s3 для Amazon S3:

<?php namespace AppLivewire; use LivewireComponent; use LivewireWithFileUploads; class FileUpload extends Component { use WithFileUploads; public $document; public $documentPath; public function upload() { $this->validate([ 'document' => 'file|mimes:pdf,docx|max:2048', ]); $this->documentPath = $this->document->store('documents', 's3'); } public function render() { return view('livewire.file-upload'); } } ?>
<div> <input type="file" wire:model="document"> @error('document') <div>{{ $message }}</div> @enderror <button wire:click="upload">Upload</button> @if ($documentPath) <div>File uploaded to: {{ $documentPath }}</div> @endif </div>

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

"documents/xyz789abc.pdf"

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

  • трейт WithFileUploads,
    который добавляет функциональность загрузки файлов
  • метод storeAs,
    который сохраняет файл с пользовательским именем
  • метод storePublicly,
    который сохраняет файл с публичным доступом
  • правило валидации file,
    которое проверяет что загруженный файл является валидным
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить