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

Правило mimes

Правило mimes используется для валидации MIME-типа загружаемого файла в компонентах Livewire. Оно применяется в методе rules компонента и проверяет, что загруженный файл имеет один из допустимых MIME-типов. В значении правила перечисляются разрешённые MIME-типы через запятую.

Синтаксис

<?php use Livewire\WithFileUploads; public function rules() { return [ 'file' => 'mimes:image/jpeg,image/png,application/pdf', ]; } ?>

Пример

Давайте создадим компонент для загрузки аватара с проверкой MIME-типа:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class AvatarUpload extends Component { use WithFileUploads; public $avatar; public $message = ''; public function rules() { return [ 'avatar' => 'mimes:image/jpeg,image/png,image/gif', ]; } public function upload() { $this->validate(); $path = $this->avatar->store('avatars', 'public'); $this->message = 'File uploaded successfully!'; } public function render() { return view('livewire.avatar-upload'); } } ?>
<div> <form wire:submit.prevent="upload"> <input type="file" wire:model="avatar"> @error('avatar') <span style="color: red;">{{ $message }}</span> @enderror <button type="submit">Upload</button> </form> @if($message) <p>{{ $message }}</p> @endif </div>

Результат выполнения кода при загрузке PNG-файла:

<div> <form> <input type="file"> <button type="submit">Upload</button> </form> <p>File uploaded successfully!</p> </div>

Пример

Валидация нескольких MIME-типов с сообщением об ошибке:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class DocumentUpload extends Component { use WithFileUploads; public $document; public $message = ''; public function rules() { return [ 'document' => 'mimes:application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document', ]; } public function upload() { $this->validate(); $path = $this->document->store('documents', 'public'); $this->message = 'Document uploaded successfully!'; } public function render() { return view('livewire.document-upload'); } } ?>
<div> <form wire:submit.prevent="upload"> <input type="file" wire:model="document"> @error('document') <span style="color: red;">{{ $message }}</span> @enderror <button type="submit">Upload Document</button> </form> @if($message) <p>{{ $message }}</p> @endif </div>

Результат выполнения кода при загрузке PDF-файла:

<div> <form> <input type="file"> <button type="submit">Upload Document</button> </form> <p>Document uploaded successfully!</p> </div>

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

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