File Manager gives Drupal a real file manager for one folder root you choose. Browse, upload, download, rename, move, copy, zip, unzip and preview files right from the admin UI.
No iframe. No bundled JavaScript file-manager library. No third-party PHP app. Everything runs through Drupal's own APIs, permissions and logging, and every file it shows is a managed File entity so the rest of Drupal tracks it like any other file.
The listing and its operations stay inside the root you set. Per-user and per-role folder patterns keep each person in their own space while admins see the whole tree.
Key features
- Browse and manage: a sortable listing with breadcrumbs, folders and search. Rename, move, copy, delete, new folder, zip, unzip, replace and upload each open an inline AJAX modal that refreshes the list in place, no full page reload.
- Chunked, resumable uploads: big files upload in chunks staged on the shared filesystem, so multi-server sites finalize fine. Guarded by CSRF, extension rules and a size cap, with drag and drop.
- Replace in place: swap a file's contents while keeping its identity. The managed
Fileid, usage and any tags survive, and a type guard blocks a replace that would change the real file type (a.zipswapped for a.jpg). - Preview and download: modal preview for images, text and PDFs, plus confirmed downloads and inline serving, all CSRF-guarded.
- Zip and unzip: compress files and folders into an archive or extract one, with zip-slip protection and caps on the extracted size and file count.
- Path confinement: every path is normalized and checked to stay inside the root. No
..tricks, no null bytes, no escaping through symlinks. Filenames get sanitized too. - Per-user and per-role roots: weight-ordered, token-aware path patterns put each user in their own subdirectory (the default gives everyone
users/[user:uuid]). Admins can bypass and see the whole root. - Per-operation permissions: download, upload, new folder, rename, replace, move/copy, delete, compress and extract are each their own permission, so a role gets exactly the operations you want.
- Extension safety: executables and browser-active files (php, sh, exe, html, svg, xml ...) are hard-denied and cannot be turned back on. Add your own denied and allowed lists on top. The rules check every extension segment, so
evil.php.txtis blocked too. - Managed-file backed: every file is a permanent managed
Fileentity with disk as the source of truth. A first-run scan registers the files you already have, public and private. - Full audit trail: every operation logs the acting user, IP and time.
- Native theming: renders in your admin theme (built for Gin) with normal render arrays and Twig. No embedded third-party UI.
- Extensible: badge plugins annotate file and breadcrumb rows, and alter/react hooks let other modules add columns, add or block operations, extend search and react to file events.
Submodules
Enable only what you need.
- File Manager Tags: colored, role-scoped tags for files and folders. Tags are content entities owned by their creator and, with an extra permission, shareable with chosen roles. A tag with no roles stays private. A Tags column assigns and removes them inline, and you can search by tag.
- File Manager Share: password-protected public shares of files and folders, plus Public/Private sub-tabs for private files. Shares can expire, self-destruct after the first download and are flood-limited against brute force.
- File Manager CKEditor: an "Insert from file manager" button for CKEditor 5 that browses the managed root and inserts files or images with usage tracking. The picker is extensible with plugins and configurable per text format.
- File Manager AI: an AI summary badge on text files, PDFs and images that opens an LLM-generated summary. Needs the AI (ai) module and a chat provider. Model and prompt are configurable.
- File Manager Lock: lock files and folders against rename, move, copy, replace and delete, with an optional password to unlock.
- File Manager Trash: a recycle bin. Deletes go to the trash to be restored or removed for good, with a cron purge after a retention period (30 days by default).
- File Manager Quota: per-user and per-role storage quotas. Uploads stop at the cap, an optional meter shows usage, and a bypass permission exempts trusted roles.
Screenshots




Configuration
- Set the root directory and limits at Administration > Configuration > Media > File Manager (
/admin/config/media/file-manager). Settings sit under General, Files and Paths. - Grant the permissions each role should have. Operations are gated one by one, so a role can download and upload without being able to delete.
- Manage files at Administration > Content > File Manager (
/admin/content/file-manager). - On first run, let it scan the root and register your existing files (or run
drush fm:convert).
Usage
- Go to Content > File Manager and browse with the breadcrumb and folder links, or search the current root.
- Row and bulk operations - Rename, Move/Copy, Delete, Zip, Unzip, Replace, Download - open a modal and refresh the list when it closes.
- Create folders and upload from the actions above the list. Uploads take drag and drop and large chunked files.
- Preview an image, text file or PDF in a modal without downloading it.
Dependencies
- The Token module, for the path pattern tokens.
Built with AI assistance
Supporting organizations:
Project information
- Project categories: Administration tools, Media
15 sites report using this module
- Created by satya.eedeti on , updated
Stable releases for this project are covered by the security advisory policy.
There are currently no supported stable releases.

