m2code/file-manager

Flexible Laravel File Manager: upload, move, delete, thumbnail, blurhash, and more

Maintainers

Package info

github.com/marijmokoginta/file-manager

pkg:composer/m2code/file-manager

Transparency log

Statistics

Installs: 933

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.2.0 2026-07-10 15:51 UTC

This package is auto-updated.

Last update: 2026-07-11 04:11:18 UTC


README

PHP Laravel Tests License

A modular, clean-architecture Laravel package for file management — upload, process, store, and serve files across multiple drivers and file types.

Requirements

  • PHP 8.2+ / Laravel 10–13 / Imagick PHP extension / intervention/image v3

Installation

composer require m2code/file-manager
php artisan vendor:publish --tag=config --provider="M2code\FileManager\FileManagerServiceProvider"

Quick Start

use M2code\FileManager\Facades\FileManager;
use M2code\FileManager\Facades\FileUrl;
use M2code\FileManager\Application\Uploader\ImageUploader;

// Save any file (UploadedFile, base64, SVG string)
$result = FileManager::save($request->file('document'), 'uploads');

// Upload and process an image
$result = ImageUploader::make()
    ->blur()->optimize('avif')->watermark()
    ->upload($request->file('photo'), 'uploads');

$result->variants->get('original')?->path;
$result->blurhash;

// Upload with encryption (requires FILE_MANAGER_ENCRYPTION_ENABLED=true)
$result = ImageUploader::make()
    ->encrypted()
    ->upload($request->file('receipt'), 'invoices');

// Delete
FileManager::delete('uploads/old.png');
FileManager::deleteVariants($result->variants);

// URLs
$url = FileUrl::getUrl('uploads/photo.png');
$signed = FileUrl::getSignedUrl('uploads/photo.png', now()->addHour());

Documentation

For Users

Document Description
Getting Started Installation, requirements, Imagick setup
Usage Guide Facades, ImageUploader, FileMover, FileUrl, variants, deletion
HTTP Upload API Endpoints, authentication, request/response formats, configuration

For Developers

Document Description
AGENTS.md Architecture conventions, DDD layers, code style, testing
PRD: Core Package Product vision, scope, roadmap
PRD: File Upload API Upload API feature requirements
ADR Index Architecture decision records
Development Skills Step-by-step guides for extending the package

Testing

vendor/bin/phpunit -c phpunit.xml

License

MIT License — Marij Mokoginta (M2code)