前期准备:
1.注册七牛云配置相关参数(参考七牛云官网)
2.将七牛云 sdk 根据七牛官网整合到tp5中
代码部分:
配置文件(在config中)
[ 'accessKey'=>'', 'secretKey'=>'', 'bucket'=>'',//上传空间名称 'DOMAIN'=>''//空间绑定的域名 ]
/** *上传图片 */ public function test(){ //获取图片 $photo = $this->request->file('photo'); //处理图片 $filepath = $photo->getRealPath();//文件路径 $info['photo']=self::photoName($photo);// 获取处理后图片的名称 //调用方法上传 $img =self::upload($info['photo'],$filepath); //判断返回信息 如果是0 则返回错误信息 if($img['err'] !== 0 ){ $this->error($img['msg']); } /** * tp5七牛云上传文件 * */ public function upload($key,$filePath){ //引入autoload.php文件 require_once APP_PATH . '/../vendor/Qiniu/autoload.php'; // 需要填写你的 Access Key 和 Secret Key $accessKey = config('qiniu.accessKey'); $secretKey = config('qiniu.secretKey'); // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 要上传的空间 $bucket = config('qiniu.bucket'); $domain = config('qiniu.DOMAIN'); $token = $auth->uploadToken($bucket); // 初始化 UploadManager 对象并进行文件的上传 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传 $token 上传凭证 $key 上传文件名 $filepath 上传文件的路径 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); if ($err !== null) { return ["err"=>1,"msg"=>$err,"data"=>""]; } else {//成功 //返回图片的完整URL return ["err"=>0,"msg"=>"上传完成","data"=>($domain .'/'. $ret['key'])]; } }
/** * 获取名字 */ function photoName($file){ $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION); //后缀 $result =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext; return $result; }