Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament File Explorer Laravel Package

ardavan/filament-file-explorer

Finder-style file manager for Filament v4 and v5, powered by Spatie Media Library, Livewire, and Tailwind. Browse, upload, and pick files with an explorer page, files table, and form picker.

View on GitHub
Deep Wiki
Context7

Navigation

Product Features · Screenshots · Requirements
Start Installation · Quickstart · Commands
Guides Explorer · Files table · Form picker · Authorization · Configuration
Site 🌐 Documentation website · Packagist

Features

  • Finder UI — sidebar tree, breadcrumbs, back / forward, responsive toolbar with ⋮ overflow
  • Views — icons (grid), list, table, details + Get Info inspector
  • Files — MIME icons (PDF, Office, zip, audio, video), extensions on labels, dark-mode contrast
  • Ops — drag-and-drop upload, clipboard (cut / copy / paste), marquee multi-select, zip download
  • Filament — plugin assets, HasFileExplorer trait, stub generators, files table page, form picker
  • API — generic scopeKey + rootFolderId, FileExplorerAuthorizer contract
  • i18n — en, fa, ar, de, nl, fr, es, pt, tr, ru, zh_CN, ja, it, hi, id

Screenshots

Grid List + Get Info
Grid List
Context menu Files table
Context Table

Requirements

Package Version
PHP 8.2+
Laravel 11 / 12 / 13
Filament 4.x or 5.x
Livewire 3.x (Filament 4) or 4.x (Filament 5)
Spatie Media Library 11.x

Installation

composer require ardavan/filament-file-explorer:"^0.5" -W

php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan filament-file-explorer:install --migrate
php artisan vendor:publish --tag=filament-file-explorer-assets --force

Register the plugin:

use Ardavan\FilamentFileExplorer\FilamentFileExplorerPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->viteTheme('resources/css/filament/admin/theme.css')
        ->plugin(FilamentFileExplorerPlugin::make());
}

Theme (required)

/* resources/css/filament/admin/theme.css */
@import '../../../../vendor/filament/filament/resources/css/theme.css';

@source '../../../../app/Filament/**/*';
@source '../../../../resources/views/filament/**/*';
@source '../../../../vendor/ardavan/filament-file-explorer/resources/views/**/*.blade.php';
npm run build
php artisan filament:assets

Full walkthrough: Installation guide →


Quickstart

use Ardavan\FilamentFileExplorer\Models\Concerns\HasFileExplorer;

class Project extends Model
{
    use HasFileExplorer;
}
php artisan filament-file-explorer:make-folder-migration projects
php artisan migrate
php artisan filament-file-explorer:make-page ProjectResource
use Ardavan\FilamentFileExplorer\Resources\Concerns\HasFileExplorerResource;

class ProjectResource extends Resource
{
    use HasFileExplorerResource;

    public static function getPages(): array
    {
        return [
            'index' => Pages\ListProjects::route('/'),
            'create' => Pages\CreateProject::route('/create'),
            'edit' => Pages\EditProject::route('/{record}/edit'),
            ...static::getFileExplorerPages(
                Pages\ManageProjectFiles::class,
                Pages\ListProjectFiles::class,
            ),
        ];
    }
}

Embed Livewire (Filament 5 / Livewire 4):

@livewire('filament-file-explorer::file-explorer', [
    'scopeKey' => 'project.'.$record->getKey(),
    'rootFolderId' => $record->folder_id,
], key('fe-'.$record->getKey()))

Or the dotted tag form: <livewire:filament-file-explorer.file-explorer … />.


Commands

Command Purpose
filament-file-explorer:install Publish config (--stubs, --migrate)
filament-file-explorer:make-page {Resource} Explorer + files list pages
filament-file-explorer:make-folder-migration {table} Add folder_id
filament-file-explorer:make-authorizer Authorizer class

Form picker

use Ardavan\FilamentFileExplorer\Forms\Components\FileExplorerPicker;

FileExplorerPicker::make('attachment_ids')
    ->scopeKey($record->fileExplorerScopeKey())
    ->rootFolderId($record->fileExplorerRootFolderId())
    ->multiple();

Documentation website

Designed in the spirit of filamentphp.com — amber CTAs, bone surfaces, screenshot gallery, and guide nav.

→ ardavanshamroshan.github.io/filament-file-explorer

Markdown mirrors (repo): installation · explorer · files table · picker · auth · config


Translations

en · fa · ar · de · nl · fr · es · pt · tr · ru · zh_CN · ja · it · hi · id

php artisan vendor:publish --tag=filament-file-explorer-translations

Development

composer install
./vendor/bin/pest
./vendor/bin/pint

License

MIT © Ardavan Shamroshan

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin