```
//更新包不要再嵌套其他文件夹中(选中所有文件再点击压缩而不是返回上一个目录压缩)
├─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);//注销变量
```
------