tomshaw / mediable
一个全面的 Laravel Livewire 媒体管理器。
Requires
- php: ^8.2
- illuminate/console: ^11.0
- illuminate/contracts: ^11.0
- illuminate/support: ^11.0
- laravel/framework: ^11.0
- livewire/livewire: ^3.4
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1
- orchestra/testbench: 9.x-dev
- pestphp/pest: 3.x-dev
- dev-master
- v0.5.1
- v0.5.0
- v0.4.0
- v0.3.10
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.28
- v0.2.27
- v0.2.26
- v0.2.25
- v0.2.24
- v0.2.23
- v0.2.22
- v0.2.21
- v0.2.20
- v0.2.19
- v0.2.18
- v0.2.17
- v0.2.16
- v0.2.15
- v0.2.14
- v0.2.13
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-release-please--branches--master
This package is auto-updated.
Last update: 2024-09-19 13:58:41 UTC
README
Mediable 是一个轻量级、易于使用的 Laravel Livewire 媒体管理器。Mediable 非常适合将内容注入博客文章、轮播图、产品预览或类似应用中。
要查看完整演示,请访问 Mediable Demo 仓库。
截图
安装
您可以通过 composer 安装此包
composer require tomshaw/mediable
Mediable 包含安装和更新命令。
php artisan mediable:install
php artisan mediable:update
运行包含的数据库迁移。
这将创建一个附件表,用于存储上传信息。
php artisan migrate
将 Mediable 样式和脚本指令添加到您的布局中。
@vite(['resources/css/app.css', 'resources/js/app.js']) @mediableStyles @mediableScripts
请确保您的 .env
中的 APP_URL
设置正确。
APP_URL=https://mydomain.com
最后,确保上传的文件可以从网络上访问。
php artisan storage:link
使用方法
将 Mediable 组件添加到您的 blade 模板中。
布尔选项可以通过仅指定键来提供。
<livewire:mediable fullScreen />
通过分发 mediable.open
事件来启动 Mediable。
这通常是在按钮点击时执行的。
$this->dispatch('mediable.open');
使用 PHP 8 命名参数直接将附件插入表单输入中。
此示例通过将附件直接注入一个具有
id
为description
的 HTML 输入来启动模态框。
$this->dispatch('mediable.open', id: 'description');
使用 mediable.on
事件来处理选定的附件。
on(['mediable.on' => function ($files) { // Handle selected files... }]);
验证
您可以在 mediable.php
配置文件中自定义允许的文件类型和最大文件大小。
'validation' => [ 'files.*' => 'required|mimes:jpeg,png,jpg,gif,mp3,mp4,m4a,ogg,wav,webm,avi,mov,wmv,txt,pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar|max:10240', ],
mimes
规则指定允许的文件类型。要添加新文件类型,只需将其 MIME 类型添加到列表中。例如,要允许 SVG 文件,您需要将其更改为
'mimes:jpeg,png,jpg,gif,mp3,mp4,m4a,ogg,wav,webm,avi,mov,wmv,txt,pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar,svg'
max
规则指定最大文件大小,以千字节为单位。要更改最大文件大小,只需更改数字。例如,要允许文件大小最多为 50MB,您需要将其更改为
'max:51200'
存储磁盘
您可以在 mediable.php
配置文件中配置用于文件上传的存储磁盘。使用 disk
选项指定磁盘名称
'disk' => env('FILESYSTEM_DRIVER', 'public'),
disk
的值是您的 Laravel 应用程序 config/filesystems.php
文件中 disks
的键。默认情况下,它使用由 FILESYSTEM_DRIVER
环境变量指定的磁盘,如果没有设置环境变量,则为 'public'。
您可以将 disk
选项更改为使用不同的磁盘进行文件上传。例如,要使用 's3' 磁盘,可以将 disk
设置为 's3'
'disk' => 's3',
请记住在您的 config/filesystems.php
文件中正确配置所选磁盘,并在终端中运行 php artisan config:clear
清除配置缓存。
图像转换设置
Mediable 可以自动创建图像上传的 WebP 和 AVIF 版本。您可以使用以下环境变量来控制此行为
-
MEDIABLE_CREATE_WEBP
:将此设置为true
以创建每个图像上传的 WebP 版本,或将false
设置为禁用此功能。默认情况下,此设置为true
。 -
MEDIABLE_CREATE_AVIF
:将此设置为true
以创建每个图像上传的 AVIF 版本,或将false
设置为禁用此功能。默认情况下,此设置为true
。
您还可以使用以下环境变量控制 WebP 和 AVIF 版本的质量
-
MEDIABLE_WEBP_QUALITY
:将此设置为介于 0 和 100 之间的任何整数以控制 WebP 版本的质量。数字越高,质量越好,但文件大小也越大。默认情况下,此设置为 80。 -
MEDIABLE_AVIF_QUALITY
:将该值设置为0到100之间的任何整数,以控制AVIF版本的画质。数字越大,画质越好,但文件大小也越大。默认情况下,此值设置为80。
以下是如何在.env
文件中设置这些环境变量的示例
MEDIABLE_CREATE_WEBP=true MEDIABLE_CREATE_AVIF=true MEDIABLE_WEBP_QUALITY=80 MEDIABLE_AVIF_QUALITY=80
贡献
请参阅贡献指南以获取详细信息。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
_ _ _ _
/\/\ ___ __| (_) __ _| |__ | | ___
/ \ / _ \/ _` | |/ _` | '_ \| |/ _ \
/ /\/\ \ __/ (_| | | (_| | |_) | | __/
\/ \/\___|\__,_|_|\__,_|_.__/|_|\___|