PHP code example of codebyray / livewire-media-uploader
1. Go to this page and download the library: Download codebyray/livewire-media-uploader library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
codebyray / livewire-media-uploader example snippets
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
class Post extends Model implements HasMedia
{
use InteractsWithMedia;
public function registerMediaCollections(): void
{
$this->addMediaCollection('photos') // matches collection="photos"
->useDisk('public') // or 's3'
->withResponsiveImages(); // optional
// If you also have avatars somewhere:
$this->addMediaCollection('avatars')->singleFile();
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('thumb')
->fit('contain', 256, 256)
->performOnCollections('photos', 'avatars') // scope to specific collections
->nonQueued();
}
}
use App\Models\Post;
use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\On;
use Livewire\Component;
class PostCreate extends Component
{
public string $title = '';
public string $body = '';
public ?int $pendingPostId = null;
protected function rules(): array
{
return ['title' => ' // Fire once per collection rendered on the page
$this->dispatch('media:attach', model: 'post', id: $post->id, collection: 'images');
}
#[On('media-attached')]
public function afterMediaAttached(string $model, string|int $id): void
{
if ($this->pendingPostId && (int)$id === (int)$this->pendingPostId) {
$this->pendingPostId = null;
$this->redirectRoute('posts.show', ['post' => $id], navigate: true);
}
}
public function render() { return view('livewire.posts.post-create'); }
}
html
resources/views/vendor/media-uploader/themes/tailwind/media-uploader.blade.php
resources/views/vendor/media-uploader/themes/bootstrap/media-uploader.blade.php
html
<livewire:media-uploader
:for="$user"
collection="avatar"
:multiple="false"
:showList="false"
preset="images"
/>
html
<livewire:media-uploader :for="$user" collection="images" preset="images" :skipExactDuplicates="true" />
html
<!-- Note: pass model class/alias without id -->
<livewire:media-uploader
model="post"
collection="images"
preset="images"
:multiple="true"
:showList="true"
/>
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.