/**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     $objFormParam = new SC_FormParam_Ex();
     // パラメーターの初期化
     $this->initParam($objFormParam, $_POST);
     $arrErrTmp = array();
     $arrForm = array();
     $this->mode = $this->getMode();
     switch ($this->mode) {
         // バックアップを作成する
         case 'bkup':
             // データ型エラーチェック
             $arrErrTmp[1] = $objFormParam->checkError();
             // データ型に問題がない場合
             if (SC_Utils_Ex::isBlank($arrErrTmp[1])) {
                 // データ型以外のエラーチェック
                 $arrErrTmp[2] = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             }
             // エラーがなければバックアップ処理を行う
             if (SC_Utils_Ex::isBlank($arrErrTmp[1]) && SC_Utils_Ex::isBlank($arrErrTmp[2])) {
                 $arrData = $objFormParam->getHashArray();
                 $work_dir = $this->bkup_dir . $arrData['bkup_name'] . '/';
                 // バックアップデータの事前削除
                 SC_Helper_FileManager_Ex::deleteFile($work_dir);
                 // バックアップファイル作成
                 $res = $this->lfCreateBkupData($arrData['bkup_name'], $work_dir);
                 // バックアップデータの事後削除
                 SC_Helper_FileManager_Ex::deleteFile($work_dir);
                 $arrErrTmp[3] = array();
                 if ($res !== true) {
                     $arrErrTmp[3]['bkup_name'] = 'バックアップに失敗しました。(' . $res . ')';
                 }
                 // DBにデータ更新
                 if (SC_Utils_Ex::isBlank($arrErrTmp[3])) {
                     $this->lfUpdBkupData($arrData);
                 } else {
                     $arrForm = $arrData;
                     $arrErr = $arrErrTmp[3];
                 }
                 $this->tpl_onload = "alert('バックアップ完了しました');";
             } else {
                 $arrForm = $objFormParam->getHashArray();
                 $arrErr = array_merge((array) $arrErrTmp[1], (array) $arrErrTmp[2]);
             }
             break;
             // リストア
         // リストア
         case 'restore_config':
         case 'restore':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければリストア処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 $msg = '「' . $arrData['list_name'] . '」のリストアを開始します。';
                 GC_Utils_Ex::gfPrintLog($msg);
                 $success = $this->lfRestore($arrData['list_name'], $this->bkup_dir, $this->bkup_ext, $this->mode);
                 $msg = '「' . $arrData['list_name'] . '」の';
                 $msg .= $success ? 'リストアを終了しました。' : 'リストアに失敗しました。';
                 $this->tpl_restore_msg .= $msg . "\n";
                 GC_Utils_Ex::gfPrintLog($msg);
             }
             break;
             // 削除
         // 削除
         case 'delete':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければリストア処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 // DBとファイルを削除
                 $this->lfDeleteBackUp($arrData, $this->bkup_dir, $this->bkup_ext);
             }
             break;
             // ダウンロード
         // ダウンロード
         case 'download':
             // データベースに存在するかどうかチェック
             $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode);
             // エラーがなければダウンロード処理を行う
             if (SC_Utils_Ex::isBlank($arrErr)) {
                 $arrData = $objFormParam->getHashArray();
                 $filename = $arrData['list_name'] . $this->bkup_ext;
                 $dl_file = $this->bkup_dir . $arrData['list_name'] . $this->bkup_ext;
                 // ダウンロード開始
                 SC_Response_Ex::headerForDownload($filename);
                 header('Content-Length: ' . filesize($dl_file));
                 readfile($dl_file);
                 SC_Response_Ex::actionExit();
                 break;
             }
         default:
             break;
     }
     // 不要になった変数を解放
     unset($arrErrTmp);
     // バックアップリストを取得する
     $arrBkupList = $this->lfGetBkupData('ORDER BY create_date DESC');
     // テンプレートファイルに渡すデータをセット
     $this->arrErr = isset($arrErr) ? $arrErr : array();
     $this->arrForm = isset($arrForm) ? $arrForm : array();
     $this->arrBkupList = $arrBkupList;
 }
Esempio n. 2
0
 /**
  * 前方互換用
  *
  * @deprecated 2.13.2
  */
 public function lfDownloadCSVFile($filepath, $prefix = '')
 {
     trigger_error('前方互換用メソッドが使用されました。', E_USER_WARNING);
     $file_name = $prefix . date('YmdHis') . '.csv';
     SC_Response_Ex::headerForDownload($file_name);
     /* データを出力 */
     // file_get_contentsはメモリマッピングも自動的に使ってくれるので高速&省メモリ
     echo file_get_contents($filepath);
 }