๐Ÿ—‚๏ธ Filament File Explorer

Filament File Explorer

A Finder-style file explorer for Filament v4/v5, backed by Spatie Media Library over a folder tree. Icons, columns and details views; keyboard operation; drag and drop; trash, quotas, tags, versions and share links.

The explorer browsing a photo folder in dark mode

Latest version Tests Downloads License

composer require koassi/filament-file-explorer
php artisan filament-file-explorer:install
$panel->plugin(FilamentFileExplorerPlugin::make());

That is a working explorer at /{panel}/file-explorer. Installation has the rest of the steps.

It works two ways

A standalone page (the default) โ€” a panel-level page in the navigation menu, backed by a single root folder. No model, no record. Where the root comes from is a resolverโ€™s decision: one shared library, one per user, one per tenant, or your own.

Record-scoped pages โ€” an explorer attached to an Eloquent record and reachable from its resource, so a project or a client has files of its own. Record-scoped pages.

Both reduce to the same Livewire component driven by two values: a scope key (authorization and session namespace) and a root folder id. Everything else in the package is built on that pair, and the two modes differ only in where they come from.

What is in it

Two guards, on every entry point

Worth knowing before anything else, because it is the shape of the whole package:

  • An ability check. Your FileExplorerAuthorizer answers what a scope may do. Nothing ever defaults to allowed, and an ability nobody declared is refused.
  • A containment check. Folder and media ids arrive as user input โ€” Livewire parameters, query strings, route bindings โ€” so every one of them is walked up the tree to prove it belongs to the root currently being browsed.

Both are required, on every action and every route. Authorization covers what that means for your own code.

Requirements

ย  ย 
PHP 8.2+
Laravel 11 or 12
Filament v4 or v5
Media Library v11

The test suite needs PHP 8.3, since Pest and Testbench do โ€” the package itself runs on 8.2.

Where to go next

New to it: Installation, then the standalone page.

Coming from an earlier version: Upgrading.

Looking for a setting: Configuration reference.