jzh / upload
webman upload plugin
v1.0.3
2025-01-15 08:10 UTC
Requires
- php: >=7.2
- aliyuncs/oss-sdk-php: ^2.4
- qcloud/cos-sdk-v5: ^2.5
- qcloud_sts/qcloud-sts-sdk: ^3.0
- qiniu/php-sdk: ^7.5
- workerman/webman-framework: >=1.3.0
README
特性
- 本地多文件上传(本地、阿里云、腾讯云、七牛云)
Base64
图片文件上传- 上传服务端文件
- 获取上传密钥
安装
composer require jzh/upload
基本用法
$upload=Jzh\Upload\Upload::config(); // 初始化。 默认为本地存储:local,阿里云:oss,腾讯云:cos,七牛:qiniu $res = $upload->uploadFile(); if($res){ var_dump(json_encode($res)); }else{ $res->getMessage(); //or $res->setError(); }
上传成功信息
[ { "key": "webman", "origin_name": "常用编程软件和工具.xlsx", "save_name": "03414c9bdaf7a38148742c87b96b8167.xlsx", "save_path": "runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx", "url": "/storage/fd2d472da56c71a6da0a5251f5e1b586.png", "uniqid ": "03414c9bdaf7a38148742c87b96b8167", "size": 15050, "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "extension": "xlsx" } ... ]
失败,抛出
UploadException
异常
成功响应字段
上传验证
支持使用验证类对上传文件的验证,包括文件大小、文件类型和后缀
支持上传SDK
阿里云对象存储
composer require aliyuncs/oss-sdk-php
腾讯云对象存储
composer require qcloud/cos-sdk-v5 composer require qcloud_sts/qcloud-sts-sdk
七牛云云对象存储
composer require qiniu/php-sdk
上传Base64图片
使用场景: 前端直接截图(头像、Canvas等)一个Base64数据流的图片直接上传到云端
请求参数
{ "extension": "png", "base64": "data:image/jpeg;base64,/9j/4AAQSkxxxxxxxxxxxxZJRgABvtyQBIr/MPTPTP/2Q==" }
请求案例(阿里云)
public function upload(Request $request) { $upload= Jzh\Upload\Upload::config(Jzh\Upload\Upload::MODE_OSS, false); // 第一个参数为存储方式。第二个参数为是否是文件(默认是) $base64 = $request->post('base64'); $r = $upload->uploadBase64($base64,'png'); var_dump($r); }
响应参数
{ "save_path": "storage/20220402213639624851671439e.png", "url": "http://webman.oss.com/storage/20220402213639624851671439e.png", "unique_id": "20220402213639624851671439e", "size": 11802, "extension": "png" }
上传服务端文件
使用场景: 服务端导出文件需要上传到云端存储,或者零时下载文件存储。
请求案例(阿里云)
$upload=Jzh\Upload\Upload::config(Jzh\Upload\Upload::MODE_OSS,false); $localFile = public_path() . DIRECTORY_SEPARATOR . 'public/webman.png'; $res = $upload->uploadServerFile($localFile);
响应参数
{ "origin_name": "webman.png", "save_path": "storage/6edf04d7c26f020cf5e46e6457620220402213414.png", "url": "http://webman.oss.com/storage/6ed9ffd54d0df57620220402213414.png", "unique_id": "6edf04d7c26f020cf5e46e6403213414", "size": 3505604, "extension": "png" }
获取上传密钥
使用场景: 获取密钥 用于前端上传
请求案例(阿里云)
$upload=Jzh\Upload\Upload::config(Jzh\Upload\Upload::MODE_OSS,false); $res = $upload->getTempKeys();