您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 驻马店分类信息网,免费分类信息发布

七牛 for ThinkPHP 正确使用及全功能开放

2024/3/24 14:17:41发布16次查看
正确使用thinkphp和七牛对接,包括管理七牛图片的接口(删除,查询),这里只说明3.2.x版本。
(这句是废话,请略过-->>)本屌丝最近好像不是很忙的样子,所以总是想着造福人类什么的,于是乎就又搞起来了。
一、正确使用thinkphp七牛引擎:
其实这个在文档上已经写了,而且给出了ftp上传类的使用例子,但是还有很多人在问。
代码如下:            $config = array(
                    'maxsize'    =>   5*1024*1024,
                    'rootpath'   =>    './uploads/',
                    'savepath'   =>    '',
                    'savename'   =>    array('uniqid',''),
                    'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),
                    'autosub'    =>    true,
                    'subname'    =>    array('date','ymd'),
            );
            //这里$config的设置就不哆嗦了,看文档吧
            $config_qiniu=array(
                'accesskey' => 'aaaabbbbb', //这里填七牛ak
                'secrectkey' => 'ccccddddd', //这里填七牛sk
                'domain' => 'mackes.qiniudn.com',//这里是查看七牛图片时的图片链接地址的域名
                'bucket' => 'webfirst'//这里是七牛中的“空间”
            );
            //这里的$config_qiniu 可以在全局配置中设置,然后例如这样 $config_qiniu=c('qiniu_config'); 来调取
$upload = new \think\upload($config,'qiniu',$config_qiniu);
            //好了,然后我们就可以很简单的使用了,如下:
            $upload->uploadone($_files['pic']);  //这里是form表单提交有人已经写过这部分了,但是我怎么都没有搞通过,这个是确实可以的,不关你信不信,反正我信了。
ok,可以上传到七牛了,但是如何删除呢? 好像thinkphp并没有给到这个接口。但是我们可以在qiniustorage.class.php文件中已经把所有的接口都已经写得差不多了,只是没有开放出来。刚开始为了我只是需要删除图片,然后一层一层的把del方法放出来。然后用 $upload->del($file); 方式来使用。但是后来需要的接口太多了,写这么多太麻烦了,于是乎代码就这样来了->->->->->
第一步:打开文件 tinkphp/library/think/upload.class.php 在文件类的最后面加入一下代码        public function __call($fun,$arg){
            return call_user_func(array($this->uploader,$fun), $arg);
        }第二步:打开文件 tinkphp/library/think/upload/driver/qiniu.class.php 在文件类的最后面加入一下代码        public function __call($fun='',$arg=array()){
            if(method_exists($this->qiniu,$fun)){
                return call_user_func(array($this->qiniu,$fun), $arg[0]);
            }else{
                return 'no qiniu function of '.$fun;
            }
        }好了,这样我们就可以简单调用 qiniustorage 中的所有方法了。如:        //配置看第一块代码
        $upload = new \think\upload($config,'qiniu',$config_qiniu);
        $upload->del($file);//$file是图片的名字
        $upload->getlist($query,$path);//$query是参数数组,可以看七牛官方api文档,$path.......看文档,没用过。
        //还有等等等等方法。就是这样变简单了。我这里主要用了魔术方法 __call 要了解这个的请百度。主要是我这么个屌丝写法会不会破坏了thinkphp本身的架构规范呢?请高手指点(ps:不要骂我)
ad:真正免费,域名+虚机+企业邮箱=0元
驻马店分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录