Β© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filamentβ€’3y agoβ€’
5 replies
DivDax

SpatieMediaLibraryFileUpload show uploaded images

Hey! πŸ‘‹

I want to use the Form Builder inside a Widget to upload images. The upload is working and my media files are stored on disk and in the media table. When i reload the page the uploaded images are gone. Storage path is linked and i have no console errors. The Field inside a Resource on the edit page it works.

Any idea what i'm doing wrong?

<?php

namespace App\Filament\Widgets;

use App\Models\Page;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Widgets\Widget;
use Filament\Forms;

class LinkpageImages extends Widget implements HasForms
{
    use InteractsWithForms;

    protected static string $view = 'filament.widgets.linkpage-images';

    protected static ?string $pollingInterval = null;

    public $pages;

    public $images;

    public function mount(): void
    {
        $this->pages = Page::get();
    }

    protected function getFormSchema()
    {
        $fields = [];

        foreach ($this->pages as $page) {
            $fields[] = Forms\Components\SpatieMediaLibraryFileUpload::make('images')
                ->collection('background')
                ->model($page)
                ->image()
                ->maxSize(1024*3)
                ->required();
        }

        return [
            Forms\Components\Grid::make(2)
                ->schema($fields)
        ];
    }

    public function submit(): void
    {
        dd($this->form->getState());
    }
}
<?php

namespace App\Filament\Widgets;

use App\Models\Page;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Widgets\Widget;
use Filament\Forms;

class LinkpageImages extends Widget implements HasForms
{
    use InteractsWithForms;

    protected static string $view = 'filament.widgets.linkpage-images';

    protected static ?string $pollingInterval = null;

    public $pages;

    public $images;

    public function mount(): void
    {
        $this->pages = Page::get();
    }

    protected function getFormSchema()
    {
        $fields = [];

        foreach ($this->pages as $page) {
            $fields[] = Forms\Components\SpatieMediaLibraryFileUpload::make('images')
                ->collection('background')
                ->model($page)
                ->image()
                ->maxSize(1024*3)
                ->required();
        }

        return [
            Forms\Components\Grid::make(2)
                ->schema($fields)
        ];
    }

    public function submit(): void
    {
        dd($this->form->getState());
    }
}
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel β€’ Build and ship admin panels & apps fast with Livewire
20,307Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

SpatieMediaLibraryFileUpload Uploaded Images Grid
FilamentFFilament / β“β”Šhelp
10mo ago
Using SpatieMediaLibraryFileUpload, show media informations
FilamentFFilament / β“β”Šhelp
13mo ago
Problem showing uploaded images
FilamentFFilament / β“β”Šhelp
3w ago
Show file uploaded in Infolist
FilamentFFilament / β“β”Šhelp
2y ago