fastadmin 上传图片或视频至七牛云
在 app/config 文件中的最后新增 七牛配置
'qiniu' => [ "use" => 0, "domain" => 'http://cdn.wqw168.com/', "bucket" => 'ghyl', "accessKey" => 'kizAtNRPdAv26H4dNCJacScMa3D2PZ57y167W3I6', "secretKey" => 'npjZ_PcN4DaoWKiv7KUA7v0CbI81OtSh2xQqPifx', ],
在 app/common/controller 下新建 Qiniu.php 文件
<?php namespace app\common\controller; use think\Config; use Qiniu\Auth; use Qiniu\Storage\UploadManager; /** * 七牛基类 */ class Qiniu extends Backend { public function initialize() { } /** * 上传 * @param array $file 图片参数 * @return array */ public function uploadOne() { $data = $this->request->file(); $info = $data['file']->getInfo(); $domain = config("qiniu.domain"); $bucket = config("qiniu.bucket"); $auth = new Auth(config("qiniu.accessKey"), config("qiniu.secretKey")); // 生成上传Token $token = $auth->uploadToken($bucket); // 构建 UploadManager 对象 $uploadMgr = new UploadManager(); list($ret, $err) = $uploadMgr->putFile($token, $info['name'], $info['tmp_name']); if ($err !== null) { return ['code' => 0, 'msg' => '上传失败']; } else { //返回图片的完整URL return ['code' => 1, 'msg' => '上传完成', 'data' => ($domain . $ret['key'])]; } } }
然后修改上传文件接口的地方:api/common/upload,正常情况下只需修改 else 里的内容
if ($chunkid) {//这里的地方不用修改,因为这里是分片上传的 } else { if (config("qiniu.use")) { //默认普通上传文件 $qiniu = new \app\common\controller\Qiniu; $rs = $qiniu->uploadOne(); if ($rs["code"] == 0) { $this->error($rs["msg"]); } $this->success(__('Uploaded successful'), '', ['url' => $rs["data"], 'fullurl' => $rs["data"]]); } else { $attachment = null; //默认普通上传文件 $file = $this->request->file('file'); try { $upload = new Upload($file); $attachment = $upload->upload(); } catch (UploadException $e) { $this->error($e->getMessage()); } $this->success(__('Uploaded successful'), ['url' => $attachment->url, 'fullurl' => cdnurl($attachment->url, true)]); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具