<?php
namespace app\controller;
use app\controller\Acl;
class Backup extends Acl {
public function record(){
$input=input('post.');
if(existFull($input,['page','limit'])){
$dbInfo=config('database.connections.mysql');
$backup=new \org\BakSql($dbInfo['hostname'],$dbInfo['username'],$dbInfo['password'],$dbInfo['database']);
$list=$backup->get_filelist();
foreach ($list as $listKey=>$listVo){
if(substr($listVo['name'],0,1)=='.'){
unset($list[$listKey]);
}
}
$count = count($list) $info =array_slice($list,$input['limit']*($input['page']-1),$input['limit']) $result=[
'state'=>'success',
'count'=>$count,
'info'=>$info
] }else{
$result=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($result);
}
public function backup(){
$dbInfo=config('database.connections.mysql');
$backup=new \org\BakSql($dbInfo['hostname'],$dbInfo['username'],$dbInfo['password'],$dbInfo['database']);
$backup->backup();
pushLog('备份数据');
return json (['state'=>'success']);
}
public function restore(){
$input=input('post.');
if(existFull($input,['name'])){
$dbInfo=config('database.connections.mysql');
$backup=new \org\BakSql($dbInfo['hostname'],$dbInfo['username'],$dbInfo['password'],$dbInfo['database']);
$backup->restore($input['name']);
pushLog('恢复数据备份[ '.$input['name'].' ]') $result=['state'=>'success'];
}else{
$result=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($result);
}
public function del(){
$input=input('post.');
if(existFull($input,['parm']) && is_array($input['parm'])){
$path=pathChange('static.backup');
foreach ($input['parm'] as $infoVo) {
if(strpos($infoVo,DIRECTORY_SEPARATOR)===false && strpos($infoVo,'..')===false){
@unlink($path.$infoVo);
pushLog('删除数据备份[ '.$infoVo.' ]') }else{
return json(['state'=>'error','info'=>'传入参数错误!']);
}
}
$result=['state'=>'success'];
}else{
$result=['state'=>'error','info'=>'传入参数不完整!'];
}
return json($result);
}
}