donia-shaker/media-library

v1.0.1 2024-05-18 10:10 UTC

This package is auto-updated.

Last update: 2024-09-21 13:21:10 UTC


README

此包提供了一套处理媒体文件的功能,包括图片、音频、视频和PDF文件。

功能

  • 灵活的存储选项:在公共和私有存储环境中无缝存储和管理您的文件。
  • 易于图像转换:轻松转换和存储多种格式的图像,以满足所有需求。
  • 自动生成缩略图:上传时立即创建和管理图像缩略图,节省您的时间和精力。
  • 通用文件存储:存储和组织任何类型的文件,包括文档、视频和音频文件。
  • 支持软删除:通过软删除功能保护您的数据,允许您轻松恢复意外删除的文件。
  • 生成URL:立即生成可共享的URL,轻松共享和访问存储内容。
  • 图像上传规则:通过可定制的图像上传规则(包括尺寸、大小和格式限制)确保最佳性能和质量。

安装

要安装 DoniaShaker\MediaLibrary 包,请按照以下步骤操作

  1. 使用Composer将包添加到您的Laravel项目中

    composer require donia-shaker/media-library
  2. 将数据库迁移和配置发布到您的项目

    php artisan vendor:publish --tag=media-library-migrations
    php artisan vendor:publish --tag=media-library-config
  3. 如果您想使用默认格式以外的默认webp格式,请编辑 config/media-library.php 中的以下行

    default_image_format = 'webp' // <-- change this value
  4. 添加包配置所需的环境变量

    MEDIA_USE_STORAGE=true|false
  5. 运行包的迁移以创建必要的数据库表

    php artisan migrate

使用

初始化

  1. 使用该包
use DoniaShaker\MediaLibrary\MediaController;
  1. 调用构造函数
$media_controller =  new MediaController();
  1. 在以下示例中,$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