- Timestamp:
- 2007/10/15 19:38:23 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/html/admin/design/upload.php
r15532 r16430 5 5 * http://www.lockon.co.jp/ 6 6 */ 7 8 // {{{ requires 7 9 require_once("../../require.php"); 8 require_once( DATA_PATH. "module/Tar.php");10 require_once(CLASS_EX_PATH . "page_extends/admin/design/LC_Page_Admin_Design_Upload_Ex.php"); 9 11 10 class LC_Page { 12 // }}} 13 // {{{ generate page 11 14 12 function LC_Page() { 13 $this->tpl_mainpage = 'design/upload.tpl'; 14 $this->tpl_subnavi = 'design/subnavi.tpl'; 15 $this->tpl_subno = 'template'; 16 $this->tpl_subno_template = 'upload'; 17 $this->tpl_mainno = "design"; 18 $this->tpl_subtitle = 'アップロード'; 19 $this->template_name = 'アップロード'; 20 } 21 } 22 23 $objPage = new LC_Page(); 24 $objView = new SC_AdminView(); 25 $objSess = new SC_Session(); 26 $objQuery = new SC_Query(); 27 28 // 認証可否の判定 29 $objSess = new SC_Session(); 30 sfIsSuccess($objSess); 31 32 // アップロードしたファイルをフォルダ 33 $new_file_dir = USER_TEMPLATE_PATH.$_POST['template_code']; 34 35 // ファイル管理クラス 36 $objUpFile = new SC_UploadFile(TEMPLATE_TEMP_DIR, $new_file_dir); 37 // ファイル情報の初期化 38 lfInitFile(); 39 // パラメータ管理クラス 40 $objFormParam = new SC_FormParam(); 41 // パラメータ情報の初期化 42 lfInitParam(); 43 44 switch($_POST['mode']) { 45 case 'upload': 46 $objFormParam->setParam($_POST); 47 $arrRet = $objFormParam->getHashArray(); 48 49 $objPage->arrErr = lfErrorCheck($arrRet); 50 51 // ファイルを一時フォルダへ保存 52 $ret = $objUpFile->makeTempFile('template_file', false); 53 if($ret != "") { 54 $objPage->arrErr['template_file'] = $ret; 55 } else if(count($objPage->arrErr) <= 0) { 56 // フォルダ作成 57 $ret = @mkdir($new_file_dir); 58 // 一時フォルダから保存ディレクトリへ移動 59 $objUpFile->moveTempFile(); 60 // 解凍 61 lfUnpacking($new_file_dir, $_FILES['template_file']['name'], $new_file_dir."/"); 62 // DBにテンプレート情報を保存 63 lfRegistTemplate($arrRet); 64 // 完了表示javascript 65 $objPage->tpl_onload = "alert('テンプレートファイルをアップロードしました。');"; 66 // フォーム値をクリア 67 $objFormParam->setParam(array('template_code' => "", 'template_name' => "")); 68 } 69 break; 70 default: 71 break; 72 } 73 // 画面の表示 74 $objPage->arrForm = $objFormParam->getFormParamList(); 75 $objView->assignobj($objPage); 76 $objView->display(MAIN_FRAME); 77 78 //--------------------------------------------------------------------------------------------------------------------------------------------------------- 79 80 /* 81 * 関数名:lfInitFile() 82 * 説明 :ファイル情報の初期化 83 */ 84 function lfInitFile() { 85 global $objUpFile; 86 87 $objUpFile->addFile("テンプレートファイル", 'template_file', array(), TEMPLATE_SIZE, true, 0, 0, false); 88 } 89 90 /* 91 * 関数名:lfInitParam() 92 * 説明 :パラメータ情報の初期化 93 */ 94 function lfInitParam() { 95 global $objFormParam; 96 97 $objFormParam->addParam("テンプレートコード", "template_code", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "ALNUM_CHECK")); 98 $objFormParam->addParam("テンプレート名", "template_name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 99 } 100 101 /* 102 * 関数名:lfErrorCheck() 103 * 引数1 :フォームの値 104 * 説明 :エラーチェック 105 */ 106 function lfErrorCheck($arrList) { 107 global $objQuery; 108 global $objFormParam; 109 110 $objErr = new SC_CheckError($arrList); 111 $objErr->arrErr = $objFormParam->checkError(); 112 113 if(count($objErr->arrErr) <= 0) { 114 // 同名のフォルダが存在する場合はエラー 115 if(file_exists(USER_TEMPLATE_PATH.$arrList['template_code'])) { 116 $objErr->arrErr['template_code'] = "※ 同名のファイルがすでに存在します。<br/>"; 117 } 118 // DBにすでに登録されていないかチェック 119 $ret = $objQuery->get("dtb_templates", "template_code", "template_code = ?", array($arrList['template_code'])); 120 if($ret != "") { 121 $objErr->arrErr['template_code'] = "※ すでに登録されているテンプレートコードです。<br/>"; 122 } 123 // ファイルの拡張子チェック(.tar/tar.gzのみ許可) 124 $errFlag = true; 125 $array_ext = explode(".", $_FILES['template_file']['name']); 126 $ext = $array_ext[ count ( $array_ext ) - 1 ]; 127 $ext = strtolower($ext); 128 // .tarチェック 129 if ($ext == 'tar') { 130 $errFlag = false; 131 } 132 133 $ext = $array_ext[ count ( $array_ext ) - 2 ].".".$ext; 134 $ext = strtolower($ext); 135 // .tar.gzチェック 136 if ($ext== 'tar.gz') { 137 $errFlag = false; 138 } 139 140 if($errFlag) { 141 $objErr->arrErr['template_file'] = "※ アップロードするテンプレートファイルで許可されている形式は、tar/tar.gzです。<br />"; 142 } 143 } 144 145 return $objErr->arrErr; 146 } 147 148 /* 149 * 関数名:lfErrorCheck() 150 * 引数1 :パラメータ 151 * 説明 :テンプレートデータ登録 152 */ 153 function lfRegistTemplate($arrList) { 154 global $objQuery; 155 156 // INSERTする値を作成する。 157 $sqlval['template_code'] = $arrList['template_code']; 158 $sqlval['template_name'] = $arrList['template_name']; 159 $sqlval['create_date'] = "now()"; 160 $sqlval['update_date'] = "now()"; 161 162 $objQuery->insert("dtb_templates", $sqlval); 163 } 164 165 /* 166 * 関数名:lfUnpacking 167 * 引数1 :ディレクトリ 168 * 引数2 :ファイルネーム 169 * 引数3 :解凍ディレクトリ 170 * 説明 :テンプレートデータ登録 171 */ 172 function lfUnpacking($dir, $file_name, $unpacking_dir) { 173 174 // 圧縮フラグTRUEはgzip解凍をおこなう 175 $tar = new Archive_Tar("$dir/$file_name", TRUE); 176 177 // 拡張子を切り取る 178 $unpacking_name = ereg_replace("\.tar$", "", $file_name); 179 $unpacking_name = ereg_replace("\.tar\.gz$", "", $file_name); 180 181 // 指定されたフォルダ内に解凍する 182 $err = $tar->extractModify($unpacking_dir, $unpacking_name); 183 184 // フォルダ削除 185 @sfDelFile("$dir/$unpacking_name"); 186 // 圧縮ファイル削除 187 @unlink("$dir/$file_name"); 188 189 return $err; 190 } 15 $objPage = new LC_Page_Admin_Design_Upload_Ex(); 16 $objPage->init(); 17 $objPage->process(); 18 register_shutdown_function(array($objPage, "destroy")); 19 ?>
Note: See TracChangeset
for help on using the changeset viewer.
