多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` //更新包不要再嵌套其他文件夹中(选中所有文件再点击压缩而不是返回上一个目录压缩) ├─temp 更新包默认下载地址 │ ├─update 更新包默认下载地址 │ ├─sql 数据库文件夹 (如果本次更新无需升级数据库,无需创建此文件夹) │ │ ├─update.sql 更新SQL文件 ├─xx1 你的需要更新的文件夹 (根据更新需求对应目录创建文件夹) │ ├─xx.php 你的需要更新的代码 ├─xx2 你的需要更新的文件夹 │ ├─xx.html 你的需要更新的代码 ├─xx3 以此类推 ├─.oreo (配置文件,不可删除,每次更新请修改里面的NUM值为更新的版本) ``` 好了,你已经学会了更新包的结构了,回到话题怎么下载更新包,我们也提供了下载更新包的接口,使用方法如下 ```php //当有新的版本提示,原则上你的网站会有一个(更新或下载)按钮,点击按钮系统自动下载并且安装好后返回结果 //一般情况下你的更新页面需要通过url的get方法来检测加载相应的页面操作,具体的方法我们会在实例Demo中展示,你也可以直接参考Demo文件的update $outVersion = $authParam['version']; //之前版本 $updatedir = '../temp/update/';//设置下载目录,建议直接在全局(核心)文件中设置;请不要设置在当前目录,应当在根目录下创建文件夹最合适 $fileName = $oreoAuth->save($oreoContent['data']['verUrl'],$updatedir);//下载文件 $updateZip = $updatedir.$fileName;//下载的文件目录和名称 //初始化PHPZIP $zip = new ZipArchive; $res = $zip->open($updateZip); if ($res === true) { $zip->extractTo('../'); $zip->close(); $sqlfile = '../temp/sql/update.sql'; $sql = @file_get_contents($sqlfile); if ($sql) { error_reporting(0); foreach (explode(";[\r\n]+", $sql) as $v) { //@mysql_query($v); $DB->query($v)->fetch(); //这个Sql导入语句根据您的代码来定义,当然我们也会为你提供mysqli的导入方法 } $type = 1; $oreoAuth->delDirAndFile('../temp/sql/'); //删除sql文件 } $oreoAuth->delDirAndFile($updatedir); //删除更新包 if(!empty($type)){ $type=1;}else{$type=2;} $oreoAuth->post($authParam)->updateLog('updateSqlType',$type)->url('http://你的域名/oreo/api/checkUpdateLog');//上报更新结果 echo '升级成功'; }else{ echo '升级失败'; } ``` ```php //mysqli导入SQL的方法(根据需要选择使用)(参考) $_mysqli = new \mysqli($hostname,$username,$password,$database,$port);//地址,用户名,密码,库名,端口 if (mysqli_connect_errno()) { exit("连接数据库出错"); } foreach (explode(";[\r\n]+", $sql) as $v) { $_mysqli->multi_query($v); //导入 } $_mysqli->close();//关闭连接 unset($hostname,$username,$password,$database,$port,$_mysqli);//注销变量 ``` ------