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

php实现腾讯cos我是如何开辟一款zblog运用的腾讯云cos储存插件开辟进程全解析 JavaScript

做一款运用首先是让用户不变动代码的情形下,能用上这款插件,这时候我们就须要做一个页面,让用户去填写这些信息。
在这之前,要先整理下须要用户供应什么参数,初始化,放到安装方法里面,赋空值。

以是我就须要这样来写:

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