wutaophp / laravel-mediable
一个用于轻松将媒体文件上传和附加到Laravel模型的包
2.0.4
2022-05-26 07:30 UTC
Requires
- php: >=7.3.0|^8.0
- ext-fileinfo: *
- guzzlehttp/guzzle: ^6.5.5|^7.4.1
- illuminate/database: ^8.83|^9.0
- illuminate/filesystem: ^8.83|^9.0
- illuminate/support: ^8.83|^9.0
- intervention/image: ^2.7.1
- league/flysystem: ^1.1.9|^2.4.2|^3.0.4
- psr/http-message: ^1.0.1
- symfony/http-foundation: ^5.0.11|^6.0.3
Requires (Dev)
- aws/aws-sdk-php: ^3.166.2
- doctrine/dbal: ^2.11|^3.0
- guzzlehttp/promises: ^1.5.1
- laravel/legacy-factories: ^1.3.0
- league/flysystem-aws-s3-v3: ^1.0.29|^2.1.0|^3.0
- mockery/mockery: ^1.4.2
- orchestra/testbench: ^6.6|^7.0
- php-coveralls/php-coveralls: ^2.5.2
- phpunit/phpunit: ^9.5.13
- vlucas/phpdotenv: ^4.2.2|^5.4.1
README
Laravel-Mediable是一个用于轻松将媒体文件上传和附加到Laravel模型的包。
特性
- 基于文件系统的方法易于配置,可以允许配置任意数量的上传目录,具有不同的可访问性。可以轻松通过MIME类型、扩展名和/或聚合类型(例如
image
表示JPEG、PNG或GIF)来限制上传。 - 多对多多态关系允许任意数量的媒体被分配给任意数量的其他模型,而无需修改它们的模式。
- 通过标签将媒体附加到模型中,以便为特定目的设置和检索媒体,例如
'thumbnail'
、'featured image'
、'gallery'
或'download'
。 - 集成对图像文件的处理支持,以创建不同用例的变体。
使用示例
将文件上传到服务器,并将其放置在文件系统磁盘上名为"uploads"的目录中。这将创建一个可以用来引用文件的媒体记录。
$media = MediaUploader::fromSource($request->file('thumb')) ->toDestination('uploads', 'blog/thumbnails') ->upload();
将媒体通过一个或多个定义其关系的标签附加到另一个Eloquent模型上。
$post = Post::create($this->request->input()); $post->attachMedia($media, ['thumbnail']);
通过标签(s)从模型中检索媒体。
$post->getMedia('thumbnail')->first()->getUrl();
安装
使用composer将包添加到您的Laravel应用中
composer require plank/laravel-mediable
在config/app.php
中注册包的service provider。在Laravel 5.5及以上版本中,如果启用了包自动发现,则可以跳过此步骤。
'providers' => [ ... Plank\Mediable\MediableServiceProvider::class, ... ];
该包包含一个用于图像上传的Facade,您可以选择注册。在Laravel 5.5及以上版本中,如果启用了包自动发现,则可以跳过此步骤。
'aliases' => [ ... 'MediaUploader' => Plank\Mediable\MediaUploaderFacade::class, ... ]
使用artisan发布包的配置文件(config/mediable.php
)。
php artisan vendor:publish --provider="Plank\Mediable\MediableServiceProvider"
运行迁移以将所需的表添加到您的数据库中。
php artisan migrate
文档
在此处阅读文档。
许可证
此包根据MIT许可证(MIT)发布。
关于Plank
Plank是一家位于加拿大蒙特利尔的网络开发公司。