需要composer安装扩展包
在config目录下配置七牛云秘钥参数 创建名为qiniu.php 的文件 配置如下
return [ 'accesskey' => '', 'secretkey' => '',// 秘钥 'bucket' => '',//上传空间名称 'DOMAIN'=>''//域名 ];
使用代码
use think\Db; use think\facade\Request; use think\facade\Config; use Qiniu\Auth as Auth; use Qiniu\Storage\BucketManager; use Qiniu\Storage\UploadManager; /** * 上传文件到七牛云 */ function qiniu_upload(){ // 获取参数 $uid = \think\facade\Request::param('user_id'); // 参数检验 if (!isset($uid) || empty($uid)) { return $this->error('用户user_id不存在'); } $img=Db::table('red_user')->where(['id'=>$uid])->value('user_img'); if(!empty($img)){ $imgArr = explode('/',$img); $delImgName =$imgArr[count($imgArr)-4].'/'.$imgArr[count($imgArr)-3].'/'.$imgArr[count($imgArr)-2].'/'.$imgArr[count($imgArr)-1]; // 初始化签权对象 $qiniu = Config::get('qiniu.');// 配置文件 $auth = new Auth($qiniu['accesskey'],$qiniu['secretkey']); $config=new \Qiniu\Config(); // 管理资源 $bucketManager = new BucketManager($auth,$config); // 删除文件操作 $bucketManager ->delete($qiniu['bucket'],$delImgName); } try{ $file =Request::file('file'); $extend=date('Ymd')."/".substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999); $file->move('./upload/userimg',$extend); // $file->move('./upload/userimg'); }catch (\Exception $e){ return $this->error($e->getMessage()); } $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);//后缀 // $exts=['jpg','png','gif','jpeg']; // if(!in_array($ext,$exts)){ // return $this->error('File format error'); // } $filePath = $file->getRealPath(); // 上传到七牛后保存的文件名 $key ="upload/userimg/".$extend. '.' . $ext; // 需要填写你的 Access Key 和 Secret Key $qiniu = Config::get('qiniu.'); $accessKey = $qiniu['accesskey']; $secretKey = $qiniu['secretkey']; // 要上传的空间 $bucket = $qiniu['bucket']; $domain = $qiniu['DOMAIN']; // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); $token = $auth->uploadToken($bucket); // 初始化 UploadManager 对象并进行文件的上传 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传 list($ret, $err) = $uploadMgr->putFile($token, $key,$key); if ($err !== null) { return $this->error('error'); } else { // 更新用户头像地址 Db::table('user')->where(['id'=>$uid])->setField('user_img',"http://".$domain."/".$ret['key']); //返回图片的完整URL return $this->success('success',"http://".$domain."/".$ret['key']); } }