wutaophp/laravel-mediable

一个用于轻松将媒体文件上传和附加到Laravel模型的包

2.0.4 2022-05-26 07:30 UTC

This package is auto-updated.

Last update: 2024-09-26 12:45:55 UTC


README

Coveralls StyleCI Packagist

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是一家位于加拿大蒙特利尔的网络开发公司。