jackillll/laravel-filament-client-upload-cos
最新稳定版本:1.2.1
Composer 安装命令:
composer require jackillll/laravel-filament-client-upload-cos
包简介
Laravel Filament extension for Tencent Cloud COS client-side upload
README 文档
README
一个为 Laravel Filament 提供腾讯云 COS 客户端直传功能的扩展包。
特性
- 🚀 客户端直传到腾讯云 COS,减轻服务器负担
- 🔒 安全的签名机制,保护您的密钥
- 📱 支持进度显示和错误处理
- 🎨 与 Filament 完美集成
- ⚡ 简单易用的 API
安装
使用 Composer 安装扩展包:
composer require jackillll/laravel-filament-client-upload-cos
发布配置文件:
php artisan vendor:publish --tag="filament-cos-upload-config"
配置
在 .env 文件中添加腾讯云 COS 配置:
COS_SECRET_ID=your_secret_id COS_SECRET_KEY=your_secret_key COS_REGION=ap-beijing COS_BUCKET=your_bucket_name COS_DOMAIN=https://your_bucket_name.cos.ap-beijing.myqcloud.com COS_UPLOAD_PATH=uploads/ COS_MAX_FILE_SIZE=10485760
使用方法
基本用法
在 Filament 表单中使用 COS 直传:
use Filament\Forms\Components\FileUpload; FileUpload::make('avatar') ->cosUpload() // 启用 COS 直传 ->acceptedFileTypes(['image/jpeg', 'image/png']) ->maxSize(5120); // 5MB
自定义上传路径
FileUpload::make('document') ->cosUpload('documents/') // 自定义上传路径 ->acceptedFileTypes(['application/pdf']);
配置上传选项
FileUpload::make('image') ->cosUpload() ->cosUploadConfig([ 'max_file_size' => 2097152, // 2MB 'allowed_extensions' => ['jpg', 'png', 'gif'], ]);
上传成功回调
FileUpload::make('file') ->cosUpload() ->cosUploadSuccess(function ($file) { // 处理上传成功后的逻辑 Log::info('File uploaded successfully', ['file' => $file]); });
使用自定义组件
如果您需要更多控制,可以使用扩展包提供的自定义组件:
use YourVendor\FilamentCosUpload\Components\FileUpload; FileUpload::make('attachment') ->cosUpload('attachments/') ->cosUploadSuccess(function ($file) { // 自定义处理逻辑 });
配置选项
在 config/filament-cos-upload.php 中可以配置以下选项:
return [ // 腾讯云 COS 配置 'secret_id' => env('COS_SECRET_ID'), 'secret_key' => env('COS_SECRET_KEY'), 'region' => env('COS_REGION', 'ap-beijing'), 'bucket' => env('COS_BUCKET'), 'domain' => env('COS_DOMAIN'), // 上传配置 'max_file_size' => env('COS_MAX_FILE_SIZE', 10485760), // 10MB 'allowed_extensions' => ['jpg', 'jpeg', 'png', 'gif', 'pdf', 'doc', 'docx'], 'upload_path' => env('COS_UPLOAD_PATH', 'uploads/'), // 安全配置 'signature_expires' => 3600, // 1小时 'callback_url' => env('COS_CALLBACK_URL'), ];
工作原理
- 用户选择文件后,前端 JavaScript 向服务器请求上传签名
- 服务器生成安全的上传签名并返回给前端
- 前端使用签名直接上传文件到腾讯云 COS
- 上传完成后,前端通知服务器更新文件信息
安全性
- 使用临时签名,避免在前端暴露密钥
- 支持文件类型和大小限制
- 签名有时效性,防止滥用
要求
- PHP 8.1+
- Laravel 10.0+ 或 11.0+
- Filament 3.0+
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!
支持
如果您在使用过程中遇到问题,请:
- 查看文档和示例
- 搜索已有的 Issues
- 创建新的 Issue 并提供详细信息
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-18