Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Medialibrary Laravel Package

spatie/laravel-medialibrary

Attach files to Eloquent models with an easy API. Upload from disk or request, store media across multiple filesystems (local/S3), and generate image/PDF conversions and manipulations using Laravel’s Filesystem.

View on GitHub
Deep Wiki
Context7
11.21.0

What's Changed

  • Add Laravel 13 support
11.20.0

What's new

  • Add getAvailableTemporaryUrl method (#3919)

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.19.0...11.20.0

11.18.2

What's Changed

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.18.1...11.18.2

11.18.1

What's Changed

  • Revert breaking interface change on registerAllMediaConversions() — the ?Media $media = null parameter that was added to the HasMedia interface in v11.18.0 has been removed, as it broke userland code that overrides the method without the parameter. The PHPStan error is now handled via the baseline instead. Fixes #3915.
11.18.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.17.10...11.18.0

11.17.10

What's Changed

This new method is similar to getAvailablePath() but calls getPathRelativeToRoot() instead of getPath(). This is useful when working with both local and cloud filesystem drivers, as getPath() returns an absolute path that cannot be passed to Storage::get().

Example usage:

Storage::disk($media->disk)->get(
    $media->getAvailablePathRelativeToRoot(['conversion'])
)

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.17.9...11.17.10

11.17.9

What's Changed

This fix resolves an issue where getStream() was forcing directory-style paths, making it impossible to use custom PathGenerators with non-directory paths (like prefixes). The fix allows developers to use filename prefixes such as {basePath}-{fileName}.

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.17.8...11.17.9

11.17.7
11.17.2
11.17.1
11.17.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.14.0...11.17.0

11.16.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.15.0...11.16.0

11.15.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.14.0...11.15.0

11.14.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.13.0...11.14.0

11.13.0
11.12.8

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.12.7...11.12.8

11.12.7
11.12.6

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.12.5...11.12.6

11.12.2

What's Changed

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.12.1...11.12.2

11.12.1

What's Changed

Full Changelog: https://github.com/spatie/laravel-medialibrary/compare/11.12.0...11.12.1

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport