Метод storePublicly
Метод storePublicly трейта WithFileUploads сохраняет загруженный файл
в публичное хранилище Laravel. Он принимает путь для сохранения,
а также опционально имя диска и возвращает относительный путь
к сохранённому файлу.
Синтаксис
<?php
$path = $file->storePublicly($path, $disk);
?>
Параметр $path определяет директорию для сохранения файла,
параметр $disk опционально задаёт название диска.
По умолчанию используется диск public.
Пример
Давайте загрузим файл и сохраним его в папку uploads:
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithFileUploads;
class FileUpload extends Component
{
use WithFileUploads;
public $file;
public function save()
{
$path = $this->file->storePublicly('uploads');
dump($path);
}
public function render()
{
return view('livewire.file-upload');
}
}
?>
<form wire:submit.prevent="save">
<input type="file" wire:model="file">
<button type="submit">Upload</button>
</form>
Результат выполнения кода после загрузки файла:
"uploads/example.jpg"
Пример
Сохраним файл с указанием конкретного диска:
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithFileUploads;
class FileUpload extends Component
{
use WithFileUploads;
public $file;
public function save()
{
$path = $this->file->storePublicly('uploads', 's3');
dump($path);
}
public function render()
{
return view('livewire.file-upload');
}
}
?>
<form wire:submit.prevent="save">
<input type="file" wire:model="file">
<button type="submit">Upload</button>
</form>
Результат выполнения кода:
"uploads/example.jpg"
Пример
Метод storePublicly автоматически генерирует уникальное имя
файла, чтобы избежать конфликтов:
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithFileUploads;
class FileUpload extends Component
{
use WithFileUploads;
public $file;
public function save()
{
$path = $this->file->storePublicly('uploads');
dump($path);
}
public function render()
{
return view('livewire.file-upload');
}
}
?>
<form wire:submit.prevent="save">
<input type="file" wire:model="file">
<button type="submit">Upload</button>
</form>
Результат выполнения кода:
"uploads/8cX6qk7t9lM3dF1p.jpg"
Смотрите также
-
трейт
WithFileUploads,
который добавляет возможности работы с файлами -
метод
store,
который сохраняет файл в приватное хранилище -
метод
storeAs,
который сохраняет файл с указанным именем -
директиву
wire:modelдля загрузки файлов,
которая связывает поле ввода с файловым свойством