说到zblog插件,首要肯定要有zblog,先下载安装zblog,在管理后台登陆上研发者账号(保证研发者模式为开启状态),并新增一个插件
应用创建好了之后,咱们在网站目录/zb_users/plugin下就能看到咱们填写的插件id的文件夹名
步行到这儿咱们就想要这个插件需要调用到什么接口了,对了,附件是吧?到官方wiki找到相对应的接口列表:
打开应用下的include.php能看到已然有了三个办法
UninstallPlugin_qcloud_cos,InstallPlugin_qcloud_cos和ActivePlugin_qcloud_cos,这儿是卸载办法,安装办法和处理办法。从腾讯云的研发文档上咱们能够看到是需要appid,secretid,secretkey,bucket,region,这几个参数,关于参数的获取方式咱们在这儿不说了,能够参考腾讯云cos研发文档:
https://cloud.tencent.com/document/product/436/6052
做一款应用首要是让用户不更改代码的状况下,能用上这款插件,此时候咱们就需要做一个页面,让用户去填写这些信息。在这之前,要先整理下需要用户供给什么参数,初始化,放到安装办法里面,赋空值。
因此我就需要这般来写:
function UninstallPlugin_qcloud_cos() { global $zbp; if(!$zbp->Config(qcloud_cos)->HasKey(versions)){ $zbp->Config(qcloud_cos)->versions = 1.0; $zbp->Config(qcloud_cos)->appid = ; $zbp->Config(qcloud_cos)->secretid = ; $zbp->Config(qcloud_cos)->secretkey = ; $zbp->Config(qcloud_cos)->bucket = ; $zbp->Config(qcloud_cos)->savePath = ; $zbp->SaveConfig(qcloud_cos); } $zbp->Config(qcloud_cos)->versions = 1.0; $zbp->SaveConfig(qcloud_cos);}
而后就剩下卸载的办法了,卸载的话咱们不需要处理。看回咱们刚才查找到的系统接口,菜单咱们是不需要的,则有3个办法需要咱们来处理,因此要创建3个办法
function qcloudCos_GetUrl(){}function qcloudCos_SaveFile(){}function qcloudCos_SaveFileBase64(){}
最后将这三个办法钩上
function ActivePlugin_qcloud_cos() { Add_Filter_Plugin(Filter_Plugin_Upload_Url,qcloudCos_GetUrl); Add_Filter_Plugin(Filter_Plugin_Upload_SaveFile,qcloudCos_SaveFile); Add_Filter_Plugin(Filter_Plugin_Upload_SaveBase64File,qcloudCos_SaveFileBase64);}function qcloudCos_GetUrl(){}function qcloudCos_SaveFile(){}function qcloudCos_SaveFileBase64(){}
勾上之后咱们来测试一下
步行到这儿证明成功了,接下来能够像传统研发那样,去编写代码了。
先用自己账号进行测试(我是直接引腾讯云的sdk)
function qclouClient(){ $cosClient = new Qcloud\Cos\Client(array(region => ap-guangzhou, credentials => array( secretId => COS_KEY, secretKey => COS_SECRET))); return $cosClient;}function qcloudCos_SaveFile($temp){ try { $result = qclouClient()->upload( $bucket=testbucket-1252448703, $key = /111.txt, $body = fopen($temp, rb), $options = array( "ACL"=>private, CacheControl => private)); print_r($result); } catch (\Exception $e) { echo "$e\n"; }}
步行到这儿之后发掘获取不到文件拓展名- -,无奈之下打开了
zb_system/function/c_system_plugin.php去查
发掘还有个this变量,打印出来瞧瞧是什么
function qcloudCos_SaveFile($temp , $f){ print_r($f);}
很好,这般就万物具备了
调用一下上传,瞧瞧会不会步行到了catch,发掘不会,表率上传成功。
接下来只要把配置页面和geturl弥补了就完美收工了,能够在刚才的f变量给多一个对象。
来瞧瞧效果:
文案来自:liaozixu.com