← Back to All Apps

SimplePhpFileLister

πŸ”— View on GitHub

πŸ“– README

Simple PHP File Lister

A lightweight, zero-configuration PHP directory lister with a modern interface. Just drop index.php into any directory on a PHP-enabled serverβ€”it works immediately with no setup required.

<img width="842" height="942" alt="image" src="https://github.com/user-attachments/assets/a88b8572-6204-4d8b-9e4d-effaa9b9cf37" />

Features

- βœ… Zero configuration β€” works immediately - πŸ“ Directory navigation with breadcrumbs and pagination - β˜‘οΈ Multi-select β€” batch download or delete multiple files - πŸ”’ Security-hardened β€” protects against path traversal and code execution - 🎨 5 themes β€” Purple, Blue, Green, Dark, Light (user-switchable) - πŸ–Ό File previews β€” hover to preview images/videos - 🎡 Built-in players β€” play audio and video files in-browser - πŸ“€ File upload β€” drag-and-drop or button upload (optional) - ✏️ File management β€” rename, delete, create folders (optional) - πŸ“¦ ZIP downloads β€” download directories as ZIP files - πŸ“± Responsive design β€” works on desktop, tablet, and mobile - ⚑ Single file β€” no external dependencies except Font Awesome CDN

Quick Start

Requirements: - PHP 7.0+ (7.4+ recommended) - Web server with PHP support - Optional: ZipArchive extension for ZIP downloads

Installation: 1. Download index.php from releases 2. Copy it into the directory you want to list 3. Visit the directory in your browser

That's it! The file list renders automatically.

Customization

All settings are in the CONFIGURATION section at the top of index.php (lines 18-60). Open the file in a text editor to customize:

Display Settings:

$title = "Simple PHP File Lister";
$subtitle = "The Easy Way To List Files";
$footer = "Made with ❀️ by Blind Trevor";

Feature Toggles:

$enableRename = false;              // Rename files/folders
$enableDelete = false;              // Delete files/folders
$enableUpload = true;               // Upload files
$enableCreateDirectory = true;      // Create folders
$enableDownloadAll = true;          // "Download All as ZIP" button
$enableIndividualDownload = true;   // Individual file downloads

Themes:

$defaultTheme = 'purple';           // purple, blue, green, dark, light
$allowThemeChange = true;           // Let users change themes

Pagination:

$defaultPaginationAmount = 30;                 // Items per page (5, 10, 20, 30, 50, 'all')
$enablePaginationAmountSelector = true;        // Show pagination dropdown

Upload Settings:

$uploadMaxFileSize = 10  1024  1024;        // Max file size (10 MB)
$uploadMaxTotalSize = 50  1024  1024;       // Max batch size (50 MB)
$uploadAllowedExtensions = [];                 // [] = all except blocked

Advanced:

$includeHiddenFiles = false;        // Show hidden files (starting with .)
$zipCompressionLevel = 6;           // ZIP compression (0-9)
$showFileSize = true;               // Display file sizes
$showFolderFileCount = true;        // Display folder/file counts

Blocked Extensions: Edit the BLOCKED_EXTENSIONS constant to control which file types are hidden and blocked from download/upload (e.g., .php, .exe, .sh).

Security

SimplePhpFileLister prioritizes security:

- Path Traversal Protection β€” Uses realpath() validation, prevents ../ attacks - Code Execution Prevention β€” Blocks dangerous file extensions (.php, .exe, .sh, etc.) - Input Sanitization β€” All user inputs escaped with htmlspecialchars() - Security Headers β€” CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy - Hidden Files β€” Automatically excluded from listings (starting with .) - Secure Downloads β€” Content-Disposition headers, MIME type whitelisting - No Database β€” Single auditable file reduces attack surface

Key Features

Multi-Select: - Select multiple files/folders with checkboxes - Batch download as ZIP or batch delete - Displays selection count and total size

File Upload: - Drag-and-drop files anywhere on the page - Multi-file upload with progress feedback - Automatic duplicate handling - Size limits and file type restrictions

Media Players: - Audio β€” MP3, WAV, OGG, M4A, FLAC, AAC - Visual progress bars for audio playback - <img width="335" height="301" alt="image" src="https://github.com/user-attachments/assets/678d1780-d6c2-4f3b-8592-26929d982d91" /> - Video β€” MP4, WebM, OGV (fullscreen lightbox) - Hover over files to reveal play buttons - <img width="814" height="510" alt="image" src="https://github.com/user-attachments/assets/b470f8b5-122c-42ee-917e-1f9d3da9ae47" />

File Management: - Rename files/folders (configurable) - Delete files/folders (configurable, permanent) - Create new folders (configurable) - All operations include path validation and security checks

Themes

5 built-in themes available: - Purple (default) β€” Vibrant purple-magenta gradient - Blue β€” Fresh cyan-blue gradient - Green β€” Natural teal-green gradient - Dark β€” Sleek dark mode - Light β€” Minimal light theme

Users can switch themes via the floating palette icon (when $allowThemeChange = true). Preferences are saved in browser localStorage.

<img width="521" height="679" alt="image" src="https://github.com/user-attachments/assets/6ef3275f-e373-4b5f-b239-72b1d36c0d19" />

Notes

- No built-in authenticationβ€”use web server auth (.htaccess, HTTP Basic Auth) - Hover previews work on desktop only (disabled on touch devices) - Delete operations are permanentβ€”no trash/recycle bin - Upload requires proper PHP configuration (upload_max_filesize, post_max_size) - Version info displayed in footer (auto-updated by GitHub Actions)

Version Management

This project uses automated semantic versioning: - Version location: APP_VERSION constant in index.php and footer - Auto-increment: PATCH version bumped on each merge to main - Manual updates: Edit APP_VERSION for MAJOR/MINOR changes - Releases: Auto-created on releases page - Skip versioning: Include [skip-version] in commit message

Updating

To update to a newer version: 1. Download new index.php from releases 2. Replace existing file 3. Re-apply your configuration settings (document them first!)

License

Free to use, modify, and redistribute.

---

Simple PHP File Lister β€’ Β© Andrew Samuel 2026

πŸš€ Releases

Version 1.1.13

v1.1.13 Released on January 13, 2026
## Version 1.1.13

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Improve error message for MPEG format browser compatibility issues
- Remove test files
- Add support for .mpg and .mpeg video file playback

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.12

v1.1.12 Released on January 13, 2026
## Version 1.1.12

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Add HTTP range request support to enable audio duration detection for all MP3 files
- Add durationchange event listener to handle Infinity duration edge case
- Fix audio player progress bar and timer for longer tracks by adding loadedmetadata listener

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.11

v1.1.11 Released on January 13, 2026
## Version 1.1.11

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Refactor to use template literals throughout and add helper function for padding
- Address code review feedback: use template literals and improve edge case handling
- Add distinctive background color and time counter for playing audio files

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.10

v1.1.10 Released on January 13, 2026
## Version 1.1.10

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Disable file upload and directory creation options

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.9

v1.1.9 Released on January 13, 2026
## Version 1.1.9

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Remove unused function and improve multi-line message display
- Fix XSS vulnerability: use DOM manipulation instead of innerHTML
- Address code review feedback: fix ARIA and use modern remove() method
- Replace all alert() calls with modern toast notification system

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.8

v1.1.8 Released on January 13, 2026
## Version 1.1.8

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Delete .gitignore

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.7

v1.1.7 Released on January 13, 2026
## Version 1.1.7

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Delete screenshots directory

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.6

v1.1.6 Released on January 13, 2026
## Version 1.1.6

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Delete screenshot.png

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.5

v1.1.5 Released on January 13, 2026
## Version 1.1.5

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Revise README with updated images and features

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.4

v1.1.4 Released on January 13, 2026
## Version 1.1.4

Released on 2026-01-13

This version was automatically created when code was merged into the main branch.

### Changes
- Update screenshots with all features enabled and rename/delete buttons visible
- Condense README from 900 to 165 lines (82% reduction) + Add Feature Screenshots
- Remove test demo files from repository
- Add updated screenshots showcasing key features
- Significantly shorten README.md from 900 to ~220 lines

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.3

v1.1.3 Released on January 12, 2026
## Version 1.1.3

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Fix: Correct function call reference from anonymous to named function
- Docs: Improve inline documentation and clarify MIME type maintenance
- Refactor: Extract duplicate recursive functions to reduce code duplication

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.2

v1.1.2 Released on January 12, 2026
## Version 1.1.2

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Add comprehensive file extension icon support including jpeg and many others

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.1.1

v1.1.1 Released on January 12, 2026
## Version 1.1.1

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Bump version to 1.1.0

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.32

v1.0.32 Released on January 12, 2026
## Version 1.0.32

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Fix race condition in video player error handling
- Add safeguard to space key handler to prevent interference with input fields
- Fix code review issues: update Font Awesome icon, remove deprecated key check, update browser compatibility
- Add video player with lightbox view and update README

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.31

v1.0.31 Released on January 12, 2026
## Version 1.0.31

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Add Copilot instructions for repository

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.30

v1.0.30 Released on January 12, 2026
## Version 1.0.30

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Implement immediate upload on file drop

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.29

v1.0.29 Released on January 12, 2026
## Version 1.0.29

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Fix progress bar always visible - override accent bar transform
- Increase progress bar opacity for better visibility
- Fix play button and progress bar not updating - add missing link parameter
- Fix progress bar to only fill link area, not checkbox section
- Add validation to prevent invalid progress values
- Fix progress bar visibility - use CSS custom properties instead of dynamic styles
- Address code review: replace :has() selector with class, remove unused variable
- Fix progress bar update - clean up dead code and use dynamic style approach
- Update README with music player feature documentation and remove test files
- Fix audio preview interference - skip audio files in preview system
- Add music player functionality to audio files

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.28

v1.0.28 Released on January 12, 2026
## Version 1.0.28

Released on 2026-01-12

This version was automatically created when code was merged into the main branch.

### Changes
- Final refinements: improve error handling, add length check, and clarify constant naming
- Address code review feedback: improve reserved names validation, error handling, and response parsing
- Add create directory feature with UI, backend handler, and documentation

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.27

v1.0.27 Released on January 11, 2026
## Version 1.0.27

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete testfile.txt

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.26

v1.0.26 Released on January 11, 2026
## Version 1.0.26

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete test1_1.txt

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.25

v1.0.25 Released on January 11, 2026
## Version 1.0.25

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete test1.txt

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.24

v1.0.24 Released on January 11, 2026
## Version 1.0.24

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete myfile.txt

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.23

v1.0.23 Released on January 11, 2026
## Version 1.0.23

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete document.pdf
- Delete .gitignore

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.22

v1.0.22 Released on January 11, 2026
## Version 1.0.22

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Delete finaltest directory

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.21

v1.0.21 Released on January 11, 2026
## Version 1.0.21

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Add folder detection with user-friendly error message
- Remove folder upload functionality - files only
- Fix "failed to fetch" error: use explicit URL and add better error handling
- Fix folder upload: use full_path field for directory structure preservation
- Add folder upload support with directory structure preservation
- Add max file size display and improve error messages for uploads
- Remove test files from tracking
- Add upload progress feedback with status indicators and progress bar
- Fix additional code review issues: validate parseInt, add safety checks, clarify security
- Remove test file from tracking
- Fix code review issues: continue statement, error messages, aria-hidden, and newlines
- Enable upload feature in config for testing
- Add file upload feature with drag-and-drop support

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.20

v1.0.20 Released on January 11, 2026
## Version 1.0.20

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Fix mobile file size display to prevent hiding by action buttons

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.19

v1.0.19 Released on January 11, 2026
## Version 1.0.19

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Remove audio and PDF preview thumbnails from file lister

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.18

v1.0.18 Released on January 11, 2026
## Version 1.0.18

Released on 2026-01-11

This version was automatically created when code was merged into the main branch.

### Changes
- Remove :not(:first-child) selector to apply padding to all items including first
- Exclude first child from padding to match hover behavior
- Add padding on touch devices to prevent file size from being hidden by buttons
- Fix rename and delete icons visibility on touch devices

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.17

v1.0.17 Released on January 10, 2026
## Version 1.0.17

Released on 2026-01-10

This version was automatically created when code was merged into the main branch.

### Changes
- Remove test files that were accidentally committed
- Reduce file row height to make pages shorter

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’

Version 1.0.16

v1.0.16 Released on January 10, 2026
## Version 1.0.16

Released on 2026-01-10

This version was automatically created when code was merged into the main branch.

### Changes
- Delete .gitignore

### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).

### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β†’