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.
| Product | Features · Screenshots · Requirements |
| Start | Installation · Quickstart · Commands |
| Guides | Explorer · Files table · Form picker · Authorization · Configuration |
| Site | 🌐 Documentation website · Packagist |
HasFileExplorer trait, stub generators, files table page, form pickerscopeKey + rootFolderId, FileExplorerAuthorizer contract| Grid | List + Get Info |
|---|---|
![]() |
![]() |
| Context menu | Files table |
|---|---|
![]() |
![]() |
| 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 |
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());
}
/* 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 →
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 … />.
| 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 |
use Ardavan\FilamentFileExplorer\Forms\Components\FileExplorerPicker;
FileExplorerPicker::make('attachment_ids')
->scopeKey($record->fileExplorerScopeKey())
->rootFolderId($record->fileExplorerRootFolderId())
->multiple();
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
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
composer install
./vendor/bin/pest
./vendor/bin/pint
MIT © Ardavan Shamroshan
How can I help you explore Laravel packages today?