Skip to content

sculptorofcode/zen-file-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ“ Zen File Manager

License PHP Version PRs Welcome Version

Zen File Manager Banner

Version 1.0.0 - Released June 2025

✨ Overview

Zen File Manager is a clean, modern, and intuitive web-based file management solution that enables you to effortlessly browse, manipulate, and organize your files and directories through a beautiful, responsive interface. Built with PHP and modern web technologies, it provides a seamless file management experience directly from your browser.

πŸš€ Features

  • πŸ“‚ File Operations

    • Browse files and folders with an intuitive UI
    • Create, rename, copy, cut, and paste files/folders
    • Delete files/folders with confirmation
    • Real-time search and filtering capabilities
  • πŸ“€ Upload & Download

    • Easy drag-and-drop file uploads
    • Multiple file upload support
    • Direct file downloads
    • ZIP file extraction
  • πŸ‘οΈ Preview & View

    • View text files directly in the browser
    • Preview images and documents
    • Code syntax highlighting for common file types
    • Render HTML files in a preview pane
  • πŸ” Security

    • Path traversal prevention
    • Configurable base directory restriction
    • File operation validations
    • Session-based buffer management
  • πŸ’» User Interface

    • Clean, modern responsive design
    • Breadcrumb navigation for easy directory traversal
    • Intuitive status messages
    • Keyboard shortcuts support
    • Dark/Light theme support (coming soon)

πŸ“‹ Requirements

  • PHP 7.4 or higher
  • Web server with PHP support (Apache, Nginx, etc.)
  • Modern browser (Chrome, Firefox, Safari, Edge)

πŸ”§ Installation

  1. Clone the repository:

    git clone https://github.com/sculptorofcode/zen-file-manager.git
  2. Move to your web server directory: For XAMPP users:

    # On Windows
    xcopy /E /I zen-file-manager C:\xampp\htdocs\file-manager\
    
    # On Linux/macOS
    cp -R zen-file-manager /opt/lampp/htdocs/file-manager/

    For other web servers:

    mv zen-file-manager /path/to/your/webserver/
  3. Configure the base directory: Edit includes/config.php to set your desired base directory.

    define('BASE_DIR', '/absolute/path/to/directory');
  4. Set proper permissions (Linux/macOS only):

    chmod -R 755 /path/to/file-manager
  5. Access through your web browser:

    http://localhost/file-manager/
    

    You'll be directed to the login page for authentication.

πŸ–₯️ Usage

Basic Navigation

  • Click on folders to navigate into them
  • Use the breadcrumb navigation to move back up
  • Use the "Parent Directory" button to go one level up

File Operations

  1. Create new file/folder:

    • Click "New File" or "New Folder"
    • Enter name in the modal
    • Click "Create"
  2. Rename files/folders:

    • Click the rename icon (✏️) next to the file/folder
    • Enter new name
    • Click "Rename"
  3. Copy, Cut & Paste:

    • Click "File Operations" button
    • Select files/folders
    • Click "Copy" or "Cut"
    • Navigate to target directory
    • Click "Paste Here"
  4. Upload files:

    • Click "Choose File" or drag files to the upload area
    • Click "Upload"

Advanced Features

  • Extract ZIP files: Click the extract icon next to any ZIP file
  • View Code Files: Click the code icon to view file contents
  • Filter/Search: Type in the search box to filter files in the current directory

🎨 Customization

Styling

Edit the assets/css/improved-styles.css file to customize the look and feel.

Configuration

Modify settings in includes/config.php to adjust behavior:

  • Change the BASE_DIR setting to control access restrictions
  • Add additional configuration parameters as needed

πŸ“š Code Structure

β”œβ”€β”€ assets/                      # CSS, JS, and library files
β”‚   β”œβ”€β”€ css/                     # Stylesheets
β”‚   β”‚   └── improved-styles.css  # Main CSS file
β”‚   β”œβ”€β”€ js/                      # JavaScript files
β”‚   β”‚   β”œβ”€β”€ jquery.min.js        # jQuery library
β”‚   β”‚   └── main.js              # Main application JS
β”‚   └── libs/                    # External libraries
β”‚       └── font-awesome/        # Icons and fonts
β”œβ”€β”€ includes/                    # PHP functions and modules
β”‚   β”œβ”€β”€ config.php               # Configuration settings
β”‚   β”œβ”€β”€ breadcrumbs.php          # Navigation breadcrumbs
β”‚   β”œβ”€β”€ dir_operations.php       # Directory operation functions
β”‚   β”œβ”€β”€ file_operations.php      # File operation functions
β”‚   β”œβ”€β”€ file_utils.php           # File utility functions
β”‚   β”œβ”€β”€ functions.php            # General functions
β”‚   β”œβ”€β”€ session_manager.php      # Session handling
β”‚   β”œβ”€β”€ template_functions.php   # UI template functions
β”‚   β”œβ”€β”€ utils.php                # Utility functions
β”‚   └── layout/                  # Layout templates
β”‚       β”œβ”€β”€ error.php            # Error template
β”‚       └── footer.php           # Footer template
β”œβ”€β”€ about.php                    # About page
β”œβ”€β”€ help.php                     # Help documentation
β”œβ”€β”€ index.php                    # Main application file
└── support.php                  # Support information

πŸ”’ Security Considerations

  • This application includes built-in authentication for basic security
  • For public-facing installations, consider adding:
    • HTTPS encryption (SSL/TLS certificates)
    • Enhanced authentication mechanisms (2FA, OAuth, etc.)
    • Request rate limiting
    • IP-based access restrictions
  • Regularly update your PHP version and dependencies
  • Limit access to sensitive directories through proper configuration
  • Back up important files before performing bulk operations
  • Review all file permissions in production environments

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†• What's New in Version 1.0.0 (June 2025)

  • Improved UI with responsive design
  • Breadcrumb Navigation for easy directory traversal
  • File Preview support for multiple file types
  • Enhanced Error Handling with detailed feedback

πŸ™ Acknowledgements

  • Font Awesome for the beautiful icons
  • jQuery for simplifying JavaScript operations
  • All contributors who have invested their time and efforts

πŸ“¬ Contact & Support


Copyright Β© 2025 Zen File Manager. All rights reserved.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published