Compact server-side file operations, inline editing, search, resilient uploads, and diagnostics in a focused single-file PHP interface.
Single-file core
No build step
Chunked uploads
Batch operations
Built-in diagnostics
Optional login
Mobile + desktop
File browser with search, upload controls, PHP runner, permission overview, and system diagnostics.
Optional login screen using the split-console layout. The interface is responsive on desktop and mobile.
This project is a compact PHP file manager for practical day-to-day server work: browsing directories, editing files, moving data around, searching large folders, checking system details, and running lightweight PHP-side function calls without leaving the interface.
The current build is fully self-contained in filemanager.php. Tailwind CSS is compiled inline, the client-side interaction code is embedded, and there is no build step or extra JavaScript bundle to deploy. Only Phosphor icons and Google Fonts are loaded from external CDNs.
Authentication is optional. By default the file manager opens directly, which suits local or trusted use. A session-based login can be enabled from the config block at the top of the file. Both the file manager and the login screen are responsive on desktop and mobile.
| Area | Included |
|---|---|
| Navigation | Home shortcut, root/parent traversal, breadcrumb navigation with automatic collapse, pagination |
| Search | Per-directory name search, clear action, / keyboard shortcut, query preservation across actions |
| File operations | Upload, download, create file, create directory, rename, delete |
| Upload pipeline | Direct multipart, base64, raw body, and chunked uploads with automatic fallback and progress panel |
| Editor | Inline text editor, view/edit mode toggle, base64-encoded save transport, file metadata display |
| Metadata | Validated permission changes (chmod), timestamp editing, owner/group visibility |
| Batch tools | Multi-select delete, copy, cut, paste across directories, archive download |
| Compression | ZipArchive, PharData, and shell archiver fallback (tar / zip) |
| Diagnostics | PHP version, server software, disabled functions, cURL/database visibility |
| System insight | OS details, available binaries, storage usage, mount overview, hosts file preview |
| Runtime helper | Embedded PHP function runner with function-name validation and local form persistence |
| UX details | Toast feedback, persistent clipboard state, modal auto-focus, responsive compact layout |
| Authentication | Optional session login, disabled by default; configurable username/password; logout when enabled |
| Responsive UI | Desktop and mobile layouts for the file manager and login screen |
- Directory listing with folders first, then files
- Permission, owner/group, size, and modified-date visibility
- Search files and folders inside the current directory
- Breadcrumb path with automatic collapse for long paths
- Quick actions for edit, download, rename, delete, permissions, and date changes
- Bulk selection bar for copy, cut, compress, and delete
- Small files go through direct multipart upload with progress
- Medium files fall back to base64 upload when needed
- Large files use raw-body or chunked uploads with retry handling
- Upload limits and chunk size adapt to the server's
post_max_size - Temporary chunk files are cleaned up automatically
- A progress panel reports status, percentage, filename, and errors
- Opens files directly inside the same interface
- Shows file size, ownership, permission string, and timestamps
- Supports fast switching between
ViewandEdit - Saves through the same PHP endpoint without a separate API layer
- Uses base64 transport for file writes
- Executes PHP functions with a single argument from the UI
- Validates the function name before execution
- Keeps the last function name and arguments in
localStorage - Useful for lightweight environment inspection or quick one-off calls
- Web/PHP overview
- OS and binary visibility
- Security and permission context
- Storage usage and mount table
- Hosts file preview when readable
- Disabled by default, so local installs open straight into the file manager
- When enabled, shows a split-console login screen with session-based login
- Default credentials are
fm_admin/fm_password - Passwords are compared as plain text by design; no hashing is applied
- A Logout action appears in the header while auth is enabled
- Works across the same PHP 5.4 - 8.5 range as the rest of the application
Runtime deployment needs only this file:
filemanager.php
There is no style.min.js, no asset build, and no database setup. Optional repository files such as README.md, assets/, and local backup snapshots are not required on the target server. Authentication settings live in the same PHP file, so enabling login does not add runtime files.
- Upload
filemanager.phpto a PHP-enabled directory. - Open it in the browser.
- Make sure the PHP process has the read/write permissions you intend for the directories you manage.
- Optional: enable authentication by setting
$fm_auth_enabled = true;and changing the default credentials.
Authentication is optional and disabled by default. With the default config, opening filemanager.php goes straight to the file manager, which is intended for local or trusted use.
Authentication settings at the top of filemanager.php (defaults shown):
$fm_auth_enabled = false;
$fm_auth_user = 'fm_admin';
$fm_auth_pass = 'fm_password';The username and password are only used when $fm_auth_enabled is set to true.
| Variable | Default | Purpose |
|---|---|---|
$fm_auth_enabled |
false |
Set to true to require login |
$fm_auth_user |
fm_admin |
Login username |
$fm_auth_pass |
fm_password |
Login password (plain text) |
- Change both credentials before enabling auth on a reachable server
- Passwords are stored and compared as plain text by design; no hashing is applied
- Login is session-based; a Logout action appears in the header while auth is enabled
- The login screen is responsive on desktop and mobile
- If the tool is exposed beyond localhost, use HTTPS and strong credentials
Supported range: PHP 5.4 through 8.5.
- No Composer dependencies or build step
- PHP 5.4-compatible syntax with guarded fallbacks for newer features
- Core file operations work without optional extensions
- Archive creation uses
zip(ZipArchive),phar(PharData), or shelltar/zipwhen available mbstringis optional and improves multibyte search and name handling- Authentication uses the same PHP 5.4-compatible session and string functions
| Topic | Notes |
|---|---|
| PHP | PHP 5.4 through 8.5; single-file application without a framework, database, or build step |
| UI assets | Tailwind CSS output and client-side JavaScript are embedded in the PHP file |
| External assets | Phosphor Icons CSS (regular, bold, fill) and Google Fonts are loaded from CDNs |
| Upload flow | Falls back through direct, base64, raw, and chunked upload methods as needed |
| Chunk storage | Temporary chunks live under the system temp directory and are cleaned up over time |
| Search | Matches file and folder names in the current directory, limited to 200 characters |
| Clipboard | Copy/cut state is stored in localStorage, so it survives directory navigation |
| Pagination | Directory listings are paginated in blocks of 500 items |
| Compression | Uses the best available method: ZipArchive, PharData, then shell tar / zip |
| Validation | File and folder names, permission modes, and timestamps are validated before use |
| Authentication | Optional; disabled by default. When enabled, uses PHP sessions and plain-text credential comparison |
| Default credentials | fm_admin / fm_password when authentication is enabled |
| Session | FMSESSID session cookie; HttpOnly, SameSite=Lax, Secure on HTTPS; logout destroys the session |
| Responsive | Desktop and mobile layouts are supported for both the file manager and login screen |
| Platform awareness | Handles both Linux-style and Windows-style environments where possible |
.
|-- filemanager.php # Single-file application: PHP, CSS, and UI JavaScript
|-- README.md
|-- assets/
| |-- login.png
| |-- overview.svg
| `-- screenshot.png
|-- login-mockups/ # Static login design references, not required at runtime
`-- backup/ # Local snapshots, not required at runtime
This is a high-trust operational tool. It can read and modify files, change permissions and timestamps, build archives, and call PHP functions directly from the interface. It is best suited for controlled admin, maintenance, lab, or internal tooling environments where that level of capability is intentional.
Authentication is off by default for local convenience. Enable it before exposing the tool to anyone other than yourself.
The project keeps the deployment model as small as possible while covering the workflows that matter most in a real file manager:
- single-file deployment
- optional session authentication
- responsive desktop and mobile layouts
- search-first navigation
- resilient uploads for different server limits
- reliable file operations
- inline editing
- server and storage inspection
- practical batch actions
It is optimized for utility first, with a compact UI that stays readable during repetitive operational work.

