/**
  * 数据库还原
  */
 public function dbrestore()
 {
     @set_time_limit(0);
     $dataDir = "../#data/db/";
     $action = !empty($_GET['action']) ? $_GET['action'] : "";
     if ("import" == $action && !empty($_GET['file'])) {
         $filename = $_GET['file'];
         $oriFilename = "";
         if (eregi(".zip\$", $filename)) {
             $oriFilename = $filename;
             $filename = eregi_replace(".zip\$", ".sql", $filename);
             $zip = new phpzip();
             $zip->unzip($dataDir . $oriFilename, $dataDir);
         }
         if (!($fp = fopen($dataDir . $filename, "r"))) {
             exit("File not found.");
         }
         $sql = "";
         while (!feof($fp)) {
             $line = trim(fgets($fp, 524288));
             if (ereg(";\$", $line)) {
                 $sql .= $line;
                 $db->query($sql);
                 $sql = "";
             } else {
                 if (!ereg("^(//|--)", $line)) {
                     $sql .= $line;
                 }
             }
         }
         fclose($fp);
         if (!empty($oriFilename)) {
             unlink($dataDir . $filename);
         }
         $tpl->assign("msg", "数据恢复成功!");
         $tpl->assign("backUrl", "db_import.php");
         $tpl->display("_msg.tpl");
         exit;
     }
     if ("delete" == $action && !empty($_GET['file']) || unlink($dataDir . $_GET['file'])) {
         header("location: ?");
         exit;
     }
     $arrSqls = array();
     if ($handle = @opendir($dataDir)) {
         while (FALSE !== ($file = readdir($handle))) {
             if (is_file($dataDir . $file)) {
                 $arrSqls[] = array("file" => $file, "size" => filesize($dataDir . $file));
             }
         }
         closedir($handle);
     }
     $this->assign("arr", $arrSqls);
     $this->display();
 }