aammui/ laravel-media
用于laravel的文件和图片上传器。
v3.0.0
2023-02-16 16:14 UTC
Requires
- php: ^8.1
- ext-gd: *
- ext-json: *
- illuminate/database: ^10.0
- illuminate/http: ^10.0
- illuminate/support: ^10.0
- intervention/image: ^2.5
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^9.0
README
Laravel 媒体处理器包。
内容
安装
composer require aammui/laravel-media
Laravel 兼容性
发布资源
php artisan vendor:publish --provider="Aammui\LaravelMedia\LaravelMediaServiceProvider"
php artisan migrate
将 HasMedia
特质添加到您的模型中。
use Aammui\LaravelMedia\Traits\HasMedia; use Illuminate\Database\Eloquent\Model; class Document extends Model { use HasMedia; }
在模型表单中 wherever 使用。
$user->addMedia(request()->file); $user->toCollection('profilePicture') ->addMedia(request()->file); $user->toCollection('profilePicture') ->toDisk('public') ->addMedia(request()->file); $user->toCollection('profilePicture') ->toDisk('public') ->addMedia(request()->file);
从 URL 添加媒体
这不会将媒体下载到您的存储中。
它只是在数据库中添加 URL,当您的应用程序提供时,媒体将从远程 URL 加载。
$user->addMediaFromUrl('http://example.com/image.jpeg');
从远程 URL 下载和添加媒体。
$user->setDownloadTrue() ->addMediaFromUrl('http://example.com/image.jpeg');
从您的模型检索媒体
$user->getMedia(); $user->fromCollection('profilePicture') ->fromDisk('local') ->getMedia();
设置响应式图像
标准响应图像大小可以定义在配置文件中。原始图像将被调整到配置中定义的不同大小。
use Aammui\LaravelMedia\Enum\Responsive; 'responsive'=>[ 'responsive' => [ Responsive::SM => [ 'w' => 50, 'h' => 50, ], Responsive::MD => [ 'w' => 150, 'h' => 150, ], Responsive::LG => [ 'w' => 600, // Can define either height or width only. ], ], ];
仅特定图像大小
use Aammui\LaravelMedia\Facades\Media; use Aammui\LaravelMedia\Enum\Responsive; Media::ofSize([Responsive::SM,Responsive::MD]) ->addMedia(request()->file);
启用图像优化
'optimize'=>true
独立媒体
假设您想添加不属于任何模型的文件,那么您可以创建独立媒体。用例可能是您在电子商务商店的产品描述中存储图像,您可以在通过 API 提交产品表单之前将图像存储在数据库中,该 API 返回公共图像 URL。
use Aammui\LaravelMedia\Facades\Media; // Use Media facade instead Media::addMedia(request()->file); // returns Media Object Media::toCollection('profilePicture') ->addMedia(request()->file); // returns Media Object while storing grouping files in profilepicture Media::toCollection('profilePicture') ->toStorage('s3') ->addMedia(request()->file); // returns Media Object while storing files in s3