$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表单提交有人已经写过这部分了,但是我怎么都没有搞通过,这个是确实可以的,不关你信不信,反正我信了。 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:不要骂我)ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。