ardavan / filament-file-explorer
Finder-style file explorer for Filament v4 and v5, powered by Spatie Media Library.
Package info
github.com/ardavanshamroshan/filament-file-explorer
pkg:composer/ardavan/filament-file-explorer
Requires
- php: ^8.2
- filament/filament: ^4.0 || ^5.0
- illuminate/contracts: ^11.0|^12.0|^13.0
- illuminate/database: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
- livewire/livewire: ^3.0 || ^4.0
- spatie/laravel-medialibrary: ^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0 || ^10.0 || ^11.0
- pestphp/pest: ^4.7
- pestphp/pest-plugin-laravel: ^4.1
README
Filament File Explorer
Finder-style file manager for Filament v4 & v5
Powered by Spatie Media Library · Livewire · Tailwind
Documentation · Installation · Explorer · Screenshots · Issues
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,
HasFileExplorertrait, stub generators, files table page, form picker - API — generic
scopeKey+rootFolderId,FileExplorerAuthorizercontract - i18n — en, fa, ar, de, nl, fr, es, pt, tr, ru, zh_CN, ja, it, hi, id
Screenshots
| Grid | List + Get Info |
|---|---|
![]() |
![]() |
| Context menu | Files 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



