PHPackages                             caurilab/media-library - 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. caurilab/media-library

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

caurilab/media-library
======================

A powerful and flexible media library package for Laravel with Vue.js components, optimized for modern web applications

0.1.1(11mo ago)03MITPHPPHP ^8.2

Since May 31Pushed 11mo agoCompare

[ Source](https://github.com/caurilab/media-library)[ Packagist](https://packagist.org/packages/caurilab/media-library)[ Docs](https://github.com/caurilab/media-library)[ RSS](/packages/caurilab-media-library/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (14)Versions (3)Used By (0)

CAURI Media Library
===================

[](#cauri-media-library)

[![Latest Version on Packagist](https://camo.githubusercontent.com/2f2d57f8663f7a717e14ede817d5a1c7af71f591a2edb7d54d3f9f68659aa447/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f63617572696c61622f6d656469612d6c6962726172792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/caurilab/media-library)[![Total Downloads](https://camo.githubusercontent.com/b211228876d5ffbfdce35bb0cab63275f1b0e2448f03c9cf169c8f75b988c97e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f63617572696c61622f6d656469612d6c6962726172792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/caurilab/media-library)[![License](https://camo.githubusercontent.com/5eb256d2e766f155919495c63101deadfe9a30d7725d1f906d9956ed249008a3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f63617572696c61622f6d656469612d6c6962726172792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/caurilab/media-library)

A powerful and flexible Laravel package for media management with integrated Vue.js components, optimized for Laravel applications.

Features
--------

[](#features)

- 🚀 File upload with drag &amp; drop
- 🖼️ Automatic image conversions
- 📱 Responsive images
- 🎨 Ready-to-use Vue.js components
- ⚡ Asynchronous processing with queues
- 🔧 Flexible configuration
- 🛡️ Validation and security
- 📦 Compatible with Laravel 11+ and 12+

Installation
------------

[](#installation)

```
composer require caurilab/media-library
```

Publier les fichiers de configuration et migrations :

```
php artisan vendor:publish --provider="Cauri\MediaLibrary\CauriMediaLibraryServiceProvider"

php artisan migrate
```

or

```
# Publier le fichier de configuration
php artisan vendor:publish --provider="Cauri\MediaLibrary\CauriMediaLibraryServiceProvider" --tag="cauri-media-config"

# Publier les migrations
php artisan vendor:publish --provider="Cauri\MediaLibrary\CauriMediaLibraryServiceProvider" --tag="cauri-media-migrations"

# Publier les composants Vue.js
php artisan vendor:publish --provider="Cauri\MediaLibrary\CauriMediaLibraryServiceProvider" --tag="cauri-media-vue"

# Publier les styles CSS
php artisan vendor:publish --provider="Cauri\MediaLibrary\CauriMediaLibraryServiceProvider" --tag="cauri-media-css"

php artisan migrate
```

Usage Rapide
------------

[](#usage-rapide)

```
# 1. Installer le package
composer require caurilab/media-library

# 2. Publier la configuration

# 6. Exécuter les migrations
php artisan migrate
```

7. Configurer le disk media dans config/filesystems.php
=======================================================

[](#7-configurer-le-disk-media-dans-configfilesystemsphp)

```
// config/filesystems.php
'disks' => [
    // ... autres disks

    'media' => [
        'driver' => 'local',
        'root' => storage_path('app/media'),
        'url' => env('APP_URL').'/storage/media',
        'visibility' => 'public',
        'throw' => false,
    ],
],
```

Créer le lien symbolique
------------------------

[](#créer-le-lien-symbolique)

```
php artisan storage:link
```

Utilisation complète dans un modèle
-----------------------------------

[](#utilisation-complète-dans-un-modèle)

```
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Cauri\MediaLibrary\Models\Concerns\HasMedia;
use Cauri\MediaLibrary\Models\Media;
use Cauri\MediaLibrary\Conversions\Conversion;

class Product extends Model
{
    use HasMedia;

    public function registerMediaCollections(): void
    {
        $this->addMediaCollection('gallery')
            ->acceptsMimeTypes(['image/jpeg', 'image/png', 'image/webp']);

        $this->addMediaCollection('documents')
            ->acceptsMimeTypes(['application/pdf'])
            ->singleFile();
    }

    public function registerMediaConversions(?Media $media = null): void
    {
        $thumb = new Conversion('thumb');
        $thumb->width(300)->height(300)->quality(80)->format('webp')->fit('cover');

        $medium = new Conversion('medium');
        $medium->width(800)->height(600)->quality(85)->format('webp')->fit('contain');

        $large = new Conversion('large');
        $large->width(1920)->height(1080)->quality(90)->format('webp')->fit('contain');
    }
}
```

Utilisation dans les controllers
--------------------------------

[](#utilisation-dans-les-controllers)

```
// Upload
$product = Product::find(1);
$media = $product->addMedia($request->file('image'))
    ->usingName('Photo produit')
    ->withCustomProperties(['alt' => 'Photo du produit'])
    ->toMediaCollection('gallery');

// Récupération
$images = $product->getMedia('gallery');
$firstImageUrl = $product->getFirstMediaUrl('gallery', 'medium');

// Dans les vues Blade
echo $product->getFirstMedia('gallery')?->img('thumb', ['class' => 'img-fluid']);
```

Commandes Utiles
----------------

[](#commandes-utiles)

```
# Régénérer toutes les conversions
php artisan cauri-media:regenerate

# Régénérer pour une collection spécifique
php artisan cauri-media:regenerate --collection=gallery

# Nettoyer les fichiers orphelins
php artisan cauri-media:clean

# Dry run pour voir ce qui serait nettoyé
php artisan cauri-media:clean --dry-run

# Nettoyer seulement les conversions obsolètes
php artisan cauri-media:clean --old-conversions
```

Documentation
-------------

[](#documentation)

Documentation complète disponible sur [docs.caurilab.com](https://docs.caurilab.com/media-library)

Licence
-------

[](#licence)

MIT License. Voir [LICENSE](LICENSE) pour plus de détails.

Développé par
-------------

[](#développé-par)

[CAURI Lab](https://caurilab.com)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance54

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

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 ~0 days

Total

2

Last Release

342d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3b5f20e91db6dcc3507d6a2e4ab771a8e523848c325d8c76ad5509c422fd531f?d=identicon)[Caurilab](/maintainers/Caurilab)

---

Top Contributors

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

---

Tags

laravelfilesimagesmediauploadgalleryResponsive Imagesvueconversionscauri

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/caurilab-media-library/health.svg)

```
[![Health](https://phpackages.com/badges/caurilab-media-library/health.svg)](https://phpackages.com/packages/caurilab-media-library)
```

###  Alternatives

[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.3M73](/packages/unisharp-laravel-filemanager)[erlandmuchasaj/laravel-file-uploader

A simple package to help you easily upload files to your laravel project.

128.7k](/packages/erlandmuchasaj-laravel-file-uploader)[gaspertrix/laravel-backpack-dropzone-field

Add Dropzone support for Laravel Backpack

172.2k](/packages/gaspertrix-laravel-backpack-dropzone-field)

PHPackages © 2026

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