/** * 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; }
/** * 前方互換用 * * @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); }