donia-shaker / media-library
v1.0.1
2024-05-18 10:10 UTC
Requires
- intervention/image: ^3.6
- ivoglent/ffmpeg-composer-bin: ^1.3
- laravel/framework: >=10.0.0 <12.0.0
Requires (Dev)
- laravel/pint: ^1.15
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.1
README
此包提供了一套处理媒体文件的功能,包括图片、音频、视频和PDF文件。
功能
- 灵活的存储选项:在公共和私有存储环境中无缝存储和管理您的文件。
- 易于图像转换:轻松转换和存储多种格式的图像,以满足所有需求。
- 自动生成缩略图:上传时立即创建和管理图像缩略图,节省您的时间和精力。
- 通用文件存储:存储和组织任何类型的文件,包括文档、视频和音频文件。
- 支持软删除:通过软删除功能保护您的数据,允许您轻松恢复意外删除的文件。
- 生成URL:立即生成可共享的URL,轻松共享和访问存储内容。
- 图像上传规则:通过可定制的图像上传规则(包括尺寸、大小和格式限制)确保最佳性能和质量。
安装
要安装 DoniaShaker\MediaLibrary 包,请按照以下步骤操作
-
使用Composer将包添加到您的Laravel项目中
composer require donia-shaker/media-library
-
将数据库迁移和配置发布到您的项目
php artisan vendor:publish --tag=media-library-migrations php artisan vendor:publish --tag=media-library-config
-
如果您想使用默认格式以外的默认webp格式,请编辑
config/media-library.php中的以下行default_image_format = 'webp' // <-- change this value
-
添加包配置所需的环境变量
MEDIA_USE_STORAGE=true|false
-
运行包的迁移以创建必要的数据库表
php artisan migrate
使用
初始化
- 使用该包
use DoniaShaker\MediaLibrary\MediaController;
- 调用构造函数
$media_controller = new MediaController();
- 在以下示例中,
$format字段可以是null,因此将使用配置中定义的default_image_format值。
保存图片
此函数将图片文件保存到媒体库,生成缩略图,并将其与当前模型关联。用法
$media_controller->saveImage($model, $model_id, $file, $format);
创建临时图片
此函数在媒体库中创建一个临时图片文件。
使用
$media_controller->saveTempImage($model, $model_id, $file);
转换临时图片
此函数将临时图片文件转换为媒体库中的正常图片文件,删除临时文件和记录,并将新图像与当前模型关联。
使用
$media_controller->convertTempImage($model, $model_id, $media->id);
删除临时图片
此函数从媒体库中删除临时图片文件和记录。
使用
$media_controller->deleteTemp();
保存音频文件
此函数将音频文件保存到媒体库,并将其与当前模型关联。
使用
$media_controller->audio($model, $model_id, $file);
保存视频文件
此函数将视频文件保存到媒体库,并将其与当前模型关联。用法
$media_controller->video($model, $model_id, $file);
保存文档文件
此函数将文档文件保存到媒体库,并将其与当前模型关联。用法
$media_controller->uploadFile($model, $model_id, $file);
媒体对象
媒体对象属性的说明
id:媒体对象的唯一标识符。model:与媒体对象关联的模型(在本例中为“滑块”)。format:媒体对象的文件格式。model_id:关联模型的ID(在本例中为2)。order:媒体对象的顺序(如果model有多个media)。file_name:媒体对象的唯一文件名。has_thumb:指示媒体对象是否有缩略图(1为true,0为false)。is_active:指示媒体对象是否处于活动状态(1为true,0为false)。is_temp:指示媒体对象是否为临时文件(1 表示是,0 表示否)。deleted_at:表示媒体对象被删除的时间戳(未删除时为 null)。created_at:表示媒体对象创建的时间戳。updated_at:表示媒体对象最后更新时间的时间戳。url:访问原始图像文件的 URL,包括临时文件。thumb_url:访问缩略图像文件的 URL(如果可用)。
媒体对象代表存储在媒体库中的媒体文件。它包含各种属性,提供关于文件的信息,例如关联的模型、文件格式、访问图像和缩略图的 URL 以及创建和更新的时间戳。
规则
方形图片
此函数将文档文件保存到媒体库,并将其与当前模型关联。它接受代表上传的文档文件的 $file 参数。
使用
use DoniaShaker\MediaLibrary\Rules\SquareImageRule; 'file' => [.., new SquareImageRule],
故障排除和协作
如果您遇到任何问题或有任何建议,请随时在 GitHub 上 提交一个 issue。