PHPackages                             iqonic/laravel-advanced-file-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. iqonic/laravel-advanced-file-manager

ActiveLibrary[File &amp; Storage](/categories/file-storage)

iqonic/laravel-advanced-file-manager
====================================

A production-ready Laravel file management package with role-based access, image/video compression, and storage quotas.

1.5.0(3mo ago)1321MITBladePHP ^8.1|^8.2|^8.3

Since Dec 19Pushed 3mo agoCompare

[ Source](https://github.com/Siddharth97D/Iqonic-file-manager)[ Packagist](https://packagist.org/packages/iqonic/laravel-advanced-file-manager)[ Docs](https://github.com/Siddharth97D/IQ-file-manager)[ RSS](/packages/iqonic-laravel-advanced-file-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (9)Versions (11)Used By (0)

🚀 Laravel Advanced File Manager
===============================

[](#-laravel-advanced-file-manager)

A powerful, production-ready **Laravel file manager package** with OS-like UI, media library, and file picker mode. Designed to be a drop-in solution for handling media, documents, and folders with a modern, responsive interface.

🌟 Why Use This Over Others?
---------------------------

[](#-why-use-this-over-others)

While there are many file managers for Laravel, this package is built for developers who need a **complete product experience** rather than just a file uploader.

- **OS-Like Experience**: A full windowing/folder system that users already know how to use.
- **Built-in UI Customization**: Unlike UniSharp or alexusmai, we provide a dynamic theming engine to match your brand instantly.
- **Picker &amp; Standalone Modes**: Easily switch between a full-page dashboard and a modal-based file picker for your CMS forms.
- **Performance at Scale**: Optimized for AWS S3 and local storage with deep search and pagination.
- **Zero Dependencies**: Powered by Alpine.js and Tailwind - no heavy jQuery or legacy JS required.

---

📋 Requirements
--------------

[](#-requirements)

- **PHP**: 8.1, 8.2, or 8.3
- **Laravel**: 10.x, 11.x, or 12.x
- **Note**: Laravel 12 requires PHP 8.2 or higher

---

✨ Key Features
--------------

[](#-key-features)

### ✅ Core Functionalities

[](#-core-functionalities)

- **Directory Structure**: Create nested folders, move files, and rename items.
- **AWS S3 Integration**: Just need s3 credentials to upload files to s3 from your laravel project.
- **Drag &amp; Drop Uploads**: Simple drag-and-drop interface for uploading multiple files.
- **Smart Previews**: Built-in modal to preview Images, Videos, PDFs, and Folder details.
- **Advanced Search**: Filter by text, file type (Image, Video, Audio, Doc), date range, and location.
- **Bulk Actions**: Select multiple files to move or delete in batches.
- **Trash Bin**: Soft delete system with "Restore" and "Permanently Delete" options.
- **Zip Downloads**: Download entire folders as `.zip` archives.
- **Image Variants**: Auto-generate multiple responsive image sizes (Thumbnail, Small, Medium, Large) + WebP support.
- **Favorites &amp; Preferences**: Mark files as favorites and store user-specific settings.
- **Headless API**: Full Sanctum-auth API for building custom frontends (React/Vue).
- **Dark Mode**: Built-in dark mode with auto-detection and toggle.
- **Keyboard Shortcuts**: Power-user hotkeys for quick navigation.

### 🎨 Customization

[](#-customization)

- **Dynamic Theming**: Change sidebar colors, active states, and fonts directly from settings.
- **Grid &amp; List Views**: Toggle between visual grid layouts and detailed list tables.

---

🛠 Installation
--------------

[](#-installation)

### 1. Require the Package

[](#1-require-the-package)

```
composer require iqonic/laravel-advanced-file-manager
```

### 2. Publish Assets &amp; Config

[](#2-publish-assets--config)

Publish the configuration file, migrations, and frontend assets:

```
php artisan vendor:publish --provider="Iqonic\FileManager\FileManagerServiceProvider"
```

### 3. Run Migrations

[](#3-run-migrations)

Create the necessary database tables:

```
php artisan migrate
```

### 4. Storage Link

[](#4-storage-link)

Ensure your public storage is linked:

```
php artisan storage:link
```

---

🚀 Usage
-------

[](#-usage)

### 1. Standalone Dashboard

[](#1-standalone-dashboard)

Access the full file manager dashboard at:

```
/file-manager

```

(You can change this route in `config/file-manager.php`)

### 2. File Picker Mode (Integration)

[](#2-file-picker-mode-integration)

Want to use this file manager to select files for a form in your own application? Use the **Picker Mode**.

**How it works:**

1. Open the file manager in a popup window with specific query parameters.
2. The user selects file(s) and clicks "Confirm Selection".
3. The window closes and sends the selected file data back to your main window via `postMessage`.

**Example Implementation:**

```
// Function to open the File Manager
function openFileManager() {
    // Params:
    // pickerMode=true  -> Enables selection mode
    // multiple=false   -> Set to true for multi-select
    const width = 1000;
    const height = 700;
    const left = (screen.width - width) / 2;
    const top = (screen.height - height) / 2;

    window.open(
        '/file-manager?pickerMode=true&multiple=false',
        'FileManager',
        `width=${width},height=${height},top=${top},left=${left},resizable=yes,scrollbars=yes`
    );
}

// Listen for the selection event
window.addEventListener('message', (event) => {
    // Verify usage if running on different domains, generally optional for same-origin
    if (event.data.type === 'fm_selection') {
        const file = event.data.file; // OR event.data.files if multiple=true

        console.log('User selected:', file);

        // Example: Update your form inputs
        // document.getElementById('featured_image_input').value = file.url;
        // document.getElementById('preview_img').src = file.url;
    }
});
```

### 3. API Usage

[](#3-api-usage)

You can also use the backend service programmatically.

```
use Iqonic\FileManager\Facades\FileManager;

// Upload a file
$file = FileManager::upload($request->file('avatar'));

// Create a folder
$folder = FileManager::createFolder('New Gallery');

// Get Files in a Folder
$files = FileManager::listFiles(['folder_id' => $folder->id]);
```

---

### 4. Image Variants &amp; Responsive Images

[](#4-image-variants--responsive-images)

Every image upload automatically generates optimized variants based on your config.

```
// Get URL for specific size (thumbnail, small, medium, large)
$url = $file->getVariantUrl('medium');

// Get responsive srcset for  tags
// Returns: "url_small.jpg 400w, url_medium.jpg 800w..."
$srcset = $file->srcset;
```

### 5. User Preferences &amp; Favorites

[](#5-user-preferences--favorites)

Store user-specific settings and mark files as favorites.

```
use Iqonic\FileManager\Models\UserPreference;

// Save a preference
UserPreference::set($user->id, 'theme', 'dark');

// Retrieve a preference
$theme = UserPreference::get($user->id, 'theme', 'light');
```

### 6. Headless API

[](#6-headless-api)

This package provides a full JSON API secured by Laravel Sanctum for headless implementations.

**Authentication:**

- Supports standard Web Session (for dashboard) OR Sanctum Tokens (for external apps).
- Issue Token: `POST /api/auth/token`
- Get User: `GET /api/user`

**Endpoints:**All dashboard routes are available via API (e.g., `GET /api/files`, `POST /api/files/upload`), returning JSON responses.

### 7. Keyboard Shortcuts

[](#7-keyboard-shortcuts)

Navigate faster with built-in hotkeys:

- **`?`**: Show Help Modal
- **`Ctrl/Cmd + A`**: Select All Files
- **`Delete` / `Backspace`**: Delete Selected Files
- **`Esc`**: Clear Selection / Close Modals

---

⚙️### Secure File Sharing
-------------------------

[](#️-secure-file-sharing)

Share files with external users securely:

- **Public Links**: Generate unique, shareable URLs.
- **Password Protection**: Optional password requirement.
- **Expiration**: Set expiry dates for links.
- **Download Limits**: Restrict max number of downloads.

```
// Generate programmatically
$share = $fileManager->createShareLink($file, [
    'password' => 'secret123',
    'expires_at' => now()->addDays(7),
    'max_downloads' => 5
]);

echo route('share.show', $share->token);
```

### Context Menu

[](#context-menu)

Right-click on any file or folder to access quick actions:

- **Preview**: Open file preview.
- **Share**: Open sharing modal.
- **Rename**: Quick rename.
- **Download**: Direct download.
- **Delete**: Move to trash.

⚙️ Configuration
----------------

[](#️-configuration)

Check `config/file-manager.php` for all settings.

SettingDefaultDescription`route_prefix``file-manager`URL prefix for the dashboard.`middleware``['web', 'auth']`Middleware applied to routes.`disk``public`Storage disk (supports `s3`).`upload.max_size_mb``100`Max upload size per file.`upload.allowed_mimes``[...]`Allowed file types.`image_variants``[...]`Config for auto-generated sizes.`features``[...]`Feature flags (favorites, dark mode, etc).---

🔍 SEO &amp; Use Cases
---------------------

[](#-seo--use-cases)

### Laravel File Manager with S3

[](#laravel-file-manager-with-s3)

This package is built to handle high-volume storage. By simply changing your disk to `s3` in the config(Settings), you gain a powerful **Laravel S3 file manager** that handles multi-part uploads and secure previews without taxing your web server.

### Laravel File Picker for Forms

[](#laravel-file-picker-for-forms)

Need a **Laravel file selector** for your blog's featured image? Use the `pickerMode` to turn the file manager into a modal popup. It returns clean file objects (URL, ID, Name) to your parent window via JS events.

### Laravel Media Library UI

[](#laravel-media-library-ui)

If you find the default Spatie Media Library too "headless", use this package as your **Laravel media library UI**. It provides the visual layer you need to browse, search, and manage your processed media variants.

If this package helped you, please ⭐ star the repo.
---------------------------------------------------

[](#if-this-package-helped-you-please--star-the-repo)

---

📄 License
---------

[](#-license)

MIT License.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance81

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

10

Last Release

103d ago

PHP version history (2 changes)v1.0.0PHP ^8.1

1.1.5PHP ^8.1|^8.2|^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/0f5699b67608f22553dab0d920d01c6b3c57cfb20da194f81e7c8c0ac13b20fa?d=identicon)[Siddharth97D](/maintainers/Siddharth97D)

---

Top Contributors

[![Siddharth97D](https://avatars.githubusercontent.com/u/176655002?v=4)](https://github.com/Siddharth97D "Siddharth97D (19 commits)")

---

Tags

filesystemlaravels3uploadfile manageraws-s3Media Managerlaravel media librarylaravel file managerfile-pickerfile manager package

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/iqonic-laravel-advanced-file-manager/health.svg)

```
[![Health](https://phpackages.com/badges/iqonic-laravel-advanced-file-manager/health.svg)](https://phpackages.com/packages/iqonic-laravel-advanced-file-manager)
```

###  Alternatives

[aws/aws-sdk-php-laravel

A simple Laravel 9/10/11/12/13 service provider for including the AWS SDK for PHP.

1.7k35.6M75](/packages/aws-aws-sdk-php-laravel)[vinelab/cdn

Content Delivery Network (CDN) Package for Laravel

217240.8k1](/packages/vinelab-cdn)[publiux/laravelcdn

Content Delivery Network (CDN) Package for Laravel

155230.4k](/packages/publiux-laravelcdn)[mwguerra/filemanager

A full-featured file manager package for Laravel and Filament v5 with dual operating modes, drag-and-drop uploads, S3/MinIO support, and comprehensive security features.

718.5k1](/packages/mwguerra-filemanager)[farhanshares/laravel-mediaman

MediaMan - The most elegant &amp; powerful media management package for Laravel!

293.7k](/packages/farhanshares-laravel-mediaman)[juhasev/laravelcdn

Content Delivery Network (CDN) Package for Laravel

1820.4k](/packages/juhasev-laravelcdn)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
