tp 七牛云文件上传
1.先创建好七牛云账号和存储空间
- 申请七牛云账号;
- 创建七牛云存储空间;
- 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey;
2.集成PHP-SDK
七牛云开发文档:https://developer.qiniu.com/kodo
(一)Composer 安装 SDK(推荐使用)
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk
(二)传统方式安装
进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)
3.实战开发
在之前要引入七牛云
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
HTML页面代码:
<form action="http://www.examtest.com/pyg/admin/save" method="post" class="form form-horizontal" id="form-add" enctype="multipart/form-data"> //文件上传 <div class="row cl"> <label class="form-label col-xs-4 col-sm-2"><span class="c-red"></span>logo图片:</label> <div class="formControls col-xs-8 col-sm-9"> <div class="uploader-thum-container"> <div id="fileList" class="uploader-list"></div> <input type="file" id="goods_logo" name="goods_logo" value=""> </div> </div> </div> </form>
控制器代码:
public function save(Request $request) { // 七牛云文件上传 // 接受文件值 $img = $_FILES['goods_logo']; // 1.截取文件的后缀 $suffix = substr($img['name'], -4, 4); //2.获取文件的临时路径 $tmp_name = $img['tmp_name']; //3:书写上传文件的新的文件名称(自定义)拼接,截取的后缀; $newFilePath = md5($tmp_name) . time() . rand(1, 999) . $suffix; print_r($newFilePath); //4:区七牛云里获取自己的秘钥 $AccessKey = '7Gu_5HzqSHJB3nLBz51pQN8oJBfqeGwd3kQ-vCNX'; $SecretKey = 'frzqcOjOhL55eIMXQSLIfO_apMHrs0fr8jjklKDt'; // 5:将获取的的秘钥实例化 $auth = new Auth($AccessKey, $SecretKey); // 6:设置将文件上传的空间名称 $spaceName = 'yanbing123456789'; //7:要上传的空间 生成上传Token $token = $auth->uploadToken($spaceName); //8: 构建 UploadManager 对象 $uploadMgr = new UploadManager(); //9: 调用 UploadManager 的 putFile 方法进行文件的上传。 list($ret, $err) = $uploadMgr->putFile($token, $newFilePath, $tmp_name); //10:进行判断 if ($err != null) { echo '文件上传失败'; /* return json([ 'msg' => '上传失败', 'code' => 201, 'result' => '' ]); */ }
//11:空间域名进行拼接新的文件路径 $imageUrl = 'http://qzevlue2n.hn-bkt.clouddn.com/' . $newFilePath; echo '文件上传成功'; /* return json([ 'msg' => '上传成功', 'code' => 200, 'result' => '' ]); */ }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现