stevema/think-upload
Composer 安装命令:
composer require stevema/think-upload
包简介
自定义一个上传服务[整合本地、七牛云、阿里云、腾讯云] 环境: ThinkPHP:8.0 PHP:8.1 理论上 php >= 7.1 thinkPHP >= 6.0 都可以使用
README 文档
README
介绍
自定义一个上传服务[整合本地、七牛云、阿里云、腾讯云] 环境: ThinkPHP:8.0 PHP:8.1 理论上 php >= 7.1 thinkPHP >= 6.0 都可以使用
安装教程
# 安装
$ composer require stevema/think-upload
使用说明
# 1、生成配置文件 - composer 是自动执行这一步的 如果没生成config文件可以手动执行
$ php think vendor:publish
# 2、修改配置文件 /config/afs.php 或在 /.env 文件中添加配置
#UPLOAD
UPLOAD_DEFAULT=local
# local aliyun qiniu qcloud
UPLOAD_VALIDATE=stevema\upload\UploadValidate
#UPLOAD_QINIU
UPLOAD_QINIU_BUCKET=
UPLOAD_QINIU_ACCESS_KEY=
UPLOAD_QINIU_SECRET_KEY=
UPLOAD_QINIU_DOMAIN=
#UPLOAD_ALIYUN
UPLOAD_ALIYUN_BUCKET=
UPLOAD_ALIYUN_ACCESS_KEY_ID=-
UPLOAD_ALIYUN_ACCESS_KEY_SECRET=
UPLOAD_ALIYUN_DOMAIN=
#UPLOAD_QCLOUD
UPLOAD_QCLOUD_BUCKET=
UPLOAD_QCLOUD_REGION=
UPLOAD_QCLOUD_SECRET_ID=
UPLOAD_QCLOUD_SECRET_KEY=
UPLOAD_QCLOUD_DOMAIN=
目录说明
├─ src
│ ├─ config # 配置文件目录
│ │ └─ upload.php # 配置文件
│ ├─ engine # 存储引擎文件
│ │ └─ Aliyun.php # 阿里云OSS引擎
│ │ └─ Local.php # 本地引擎
│ │ └─ Qcloud.php # 腾讯云COS引擎
│ │ └─ Qiniu.php # 七牛云引擎
│ │ └─ Server.php # 公共引擎-其他引擎都继承它
│ ├─ facades # 门面文件目录
│ │ └─ Upload.php # 门面
│ └─ helper.php # 帮助文件
│ └─ UploadManage.php # 项目主文件
│ └─ UploadService.php # TP使用的Service文件
│ └─ UploadValidate.php # TP的文件验证
└─ composer.json # 配置
使用方式
# 引入门面
use stevema\upload\facade\Upload;
# 随便加一个路由
Route::get('/upload', function(){
$upload = Upload::storage();
// $upload = app('upload');
$upload = upload();
# 上面这三种方式都能拿到upload类
$save_dir = 'uploads/images';
$upload = app('upload');
# 写入文件
$upload->setUploadFile('file');
# 上传文件
if (!$upload->upload($save_dir)) throw new Exception($upload->getError());
# 获取文件名 -上传后的文件名
$fileName = $upload->getFileName();
# 获取文件信息
$fileInfo = $upload->getFileInfo();
// 3、处理文件名称
if (strlen($fileInfo['name']) > 128) {
$file_name = substr($fileInfo['name'], 0, 123);
$file_end = substr($fileInfo['name'], strlen($fileInfo['name'])-5, strlen($fileInfo['name']));
$fileInfo['name'] = $file_name.$file_end;
}
// 具体路径
$uri = $save_dir . '/' . str_replace("\\","/", $fileName);
$uri = $upload->getFileUrl($uri);
dd($fileName, $fileInfo, $uri);
// 输出结果
// 1 "20230808225609184211191.png"
// 2 array:5 [
// "ext" => "png"
// "size" => 26696
// "mime" => "image/png"
// "name" => "logo-400.png"
// "realPath" => "/tmp/phpKD8zDz"
// ]
// 3 "http://tp.sm.com/uploads/images/20230808225609184211191.png"
});
备注
stevema/think-upload 适用场景与选型建议
stevema/think-upload 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 08 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「upload」 「think」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 stevema/think-upload 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 stevema/think-upload 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 stevema/think-upload 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The file manager intended for using Laravel with CKEditor / TinyMCE / Colorbox
This is a transaction.
Laravel Media Popup to upload/view the files
ThinkPhP扩展包
ThinkSNS-4默认主题
EasyWechat For Thnkphp5.1+
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-08-08