运用创建好了之后,我们在网站目录/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