You are viewing the documentation for an older version of this package.
You can check the version you are using with the following command:
composer show spatie/laravel-medialibrary
Associate files with Eloquent models
A free package that associates files to Eloquent models, generates thumbnails and responsive images, and manages media across file systems.
This package can associate all sorts of files with Eloquent models. It provides a simple, fluent API to work with. The Pro version of the package offers Blade, Vue and React components to handle uploads to the media library and to administer the content of a medialibrary collection.
Here are some quick code examples:
$yourModel = YourModel ::find (1);
$yourModel ->addMedia ($pathToFile )->toMediaCollection ('images' );
It can also directly handle your uploads:
$yourModel ->addMediaFromRequest ('image' )->toMediaCollection ('images' );
Want to store some large files on another filesystem? No problem:
$yourModel ->addMedia ($smallFile )->toMediaCollection ('downloads' , 'local' );
$yourModel ->addMedia ($bigFile )->toMediaCollection ('downloads' , 's3' );
The storage of the files is handled by Laravel's Filesystem , so you can plug in any compatible filesystem.
The package can also generate derived images such as thumbnails for images, videos and PDFs. Once you've set up your model , they're easily accessible:
$yourModel ->getMedia ('images' )->first ()->getUrl ('thumb' );
# # Are you a visual learner?
We've recorded a video course on how to use this package. It's the best way to get started using media library
# # We have badges!