布衣風古 2017-10-18 18:18:44 4688次浏览 1条评论 5 1 0
  1. 先下载7牛官网PHP SDK
    PHP SDK 下载地址

  2. 把下载的文件夹怼进项目里!
    1.png

  3. 在对应的Controller里面使用

    public function actionUpdate()
    {
     /***7牛密钥和存储空间**/
     $ak = '你的7牛ak';
     $sk = '你的7牛sk';
     $domain = '7牛外链默认域名';
     $bucket = '7牛存储空间名字';
     $key = '上传7牛时,文件的名字'
    
     /*****/
     // 构建鉴权对象
     $auth = new Auth($ak, $sk);
     // 生成上传 Token
     $token = $auth->uploadToken($bucket);
    
     ...
    
     //获取传过来的图片
     $pic = UploadedFile::getInstance($model, 'photo');
     $model->photo = 'http://' . $domain . '/' . $key;
     $url = [$model->photo];
     //刷新7牛服务器,不刷新更新图片的时候不能即使显示,貌似7牛服务器七天后才刷新
     $cdnManager = new CdnManager($auth);
     $cdnManager->refreshUrls($url);
     if (!empty($pic)) {
         $filePath = $pic->tempName;
         $uploadMgr = new UploadManager();
         //更换照片,先删除服务器的照片
         $config = new \Qiniu\Config();
         $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
         $bucketManager->delete($bucket, $key);
         //上传照片到7牛
         $uploadMgr->putFile($token, $key, $filePath);
     }
    }
    

    因为不是覆盖上传,所以我每次都先删除一下之前的重名文件。记得之前有个大神弄了一个YII-qiniu的封装,我用的觉好还行,就是差刷新服务器的方法,所以才自己草草的研究了一下SDK,得出来的方法仅供大家参考。毕竟本着先实现后优化的态度,后期要自己封装代码一下才行,看起来不会一大块一大块的

觉得很赞
您需要登录后才可以评论。登录 | 立即注册