Changeset 11730 for branches/comu/data/class/SC_UploadFile.php
- Timestamp:
- 2007/03/11 06:27:25 (19 years ago)
- File:
-
- 1 edited
-
branches/comu/data/class/SC_UploadFile.php (modified) (25 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/data/class/SC_UploadFile.php
r11729 r11730 9 9 require_once($SC_UPLOADFILE_DIR . "/../lib/gdthumb.php"); 10 10 11 /* アップロードファイル管理クラス*/11 /* ¥¢¥Ã¥×¥í¡¼¥É¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹ */ 12 12 class SC_UploadFile { 13 13 var $temp_dir; 14 14 var $save_dir; 15 var $keyname; // ファイルinputタグのname16 var $width; // 横サイズ17 var $height; // 縦サイズ18 var $arrExt; // 指定する拡張子19 var $temp_file; // 保存されたファイル名20 var $save_file; // DB から読み出したファイル名21 var $disp_name; // 項目名22 var $size; // 制限サイズ23 var $necessary; // 必須の場合:true24 var $image; // 画像の場合:true25 26 // ファイル管理クラス15 var $keyname; // ¥Õ¥¡¥¤¥ëinput¥¿¥°¤Îname 16 var $width; // ²£¥µ¥¤¥º 17 var $height; // ½Ä¥µ¥¤¥º 18 var $arrExt; // »ØÄꤹ¤ë³ÈÄ¥»Ò 19 var $temp_file; // Êݸ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾ 20 var $save_file; // DB¤«¤éÆÉ¤ß½Ð¤·¤¿¥Õ¥¡¥¤¥ë̾ 21 var $disp_name; // ¹àÌÜ̾ 22 var $size; // À©¸Â¥µ¥¤¥º 23 var $necessary; // ɬ¿Ü¤Î¾ì¹ç:true 24 var $image; // ²èÁü¤Î¾ì¹ç:true 25 26 // ¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹ 27 27 function SC_UploadFile($temp_dir, $save_dir) { 28 28 $this->temp_dir = $temp_dir; … … 31 31 } 32 32 33 // ファイル情報追加33 // ¥Õ¥¡¥¤¥ë¾ðÊóÄɲà 34 34 function addFile($disp_name, $keyname, $arrExt, $size, $necessary=false, $width=0, $height=0, $image=true) { 35 35 $this->disp_name[] = $disp_name; … … 42 42 $this->image[] = $image; 43 43 } 44 // サムネイル画像の作成44 // ¥µ¥à¥Í¥¤¥ë²èÁü¤ÎºîÀ® 45 45 function makeThumb($src_file, $width, $height) { 46 // 一意なIDを取得する。46 // °ì°Õ¤ÊID¤ò¼èÆÀ¤¹¤ë¡£ 47 47 $uniqname = date("mdHi") . "_" . uniqid(""); 48 48 … … 53 53 54 54 if($ret[0] != 1) { 55 // エラーメッセージの表示55 // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨ 56 56 print($ret[1]); 57 57 exit; … … 61 61 } 62 62 63 // アップロードされたファイルを保存する。63 // ¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£ 64 64 function makeTempFile($keyname, $rename = true) { 65 65 $objErr = new SC_CheckError(); … … 68 68 69 69 if(!($_FILES[$keyname]['size'] > 0)) { 70 $objErr->arrErr[$keyname] = " ※ " . $this->disp_name[$arrKeyname[$keyname]] . "がアップロードされていません。<br />";70 $objErr->arrErr[$keyname] = "¢¨ " . $this->disp_name[$arrKeyname[$keyname]] . "¤¬¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br />"; 71 71 } else { 72 72 foreach($this->keyname as $val) { 73 // 一致したキーのファイルに情報を保存する。73 // °ìÃפ·¤¿¥¡¼¤Î¥Õ¥¡¥¤¥ë¤Ë¾ðÊó¤òÊݸ¤¹¤ë¡£ 74 74 if ($val == $keyname) { 75 // 拡張子チェック75 // ³ÈÄ¥»Ò¥Á¥§¥Ã¥¯ 76 76 $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->arrExt[$cnt]), array("FILE_EXT_CHECK")); 77 // ファイルサイズチェック77 // ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¥Á¥§¥Ã¥¯ 78 78 $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->size[$cnt]), array("FILE_SIZE_CHECK")); 79 // エラーがない場合79 // ¥¨¥é¡¼¤¬¤Ê¤¤¾ì¹ç 80 80 if(!isset($objErr->arrErr[$keyname])) { 81 // 画像ファイルの場合81 // ²èÁü¥Õ¥¡¥¤¥ë¤Î¾ì¹ç 82 82 if($this->image[$cnt]) { 83 83 $this->temp_file[$cnt] = $this->makeThumb($_FILES[$keyname]['tmp_name'], $this->width[$cnt], $this->height[$cnt]); 84 // 画像ファイル以外の場合84 // ²èÁü¥Õ¥¡¥¤¥ë°Ê³°¤Î¾ì¹ç 85 85 } else { 86 // 一意なファイル名を作成する。86 // °ì°Õ¤Ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë¡£ 87 87 if($rename) { 88 88 $uniqname = date("mdHi") . "_" . uniqid("")."."; … … 102 102 } 103 103 104 // 画像を削除する。104 // ²èÁü¤òºï½ü¤¹¤ë¡£ 105 105 function deleteFile($keyname) { 106 106 $objImage = new SC_Image($this->temp_dir); … … 108 108 foreach($this->keyname as $val) { 109 109 if ($val == $keyname) { 110 // 一時ファイルの場合削除する。110 // °ì»þ¥Õ¥¡¥¤¥ë¤Î¾ì¹çºï½ü¤¹¤ë¡£ 111 111 if($this->temp_file[$cnt] != "") { 112 112 $objImage->deleteImage($this->temp_file[$cnt], $this->save_dir); … … 119 119 } 120 120 121 // 一時ファイルパスを取得する。121 // °ì»þ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë¡£ 122 122 function getTempFilePath($keyname) { 123 123 $cnt = 0; … … 134 134 } 135 135 136 // 一時ファイルを保存ディレクトリに移す136 // °ì»þ¥Õ¥¡¥¤¥ë¤òÊݸ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ü¤¹ 137 137 function moveTempFile() { 138 138 $cnt = 0; … … 143 143 144 144 $objImage->moveTempImage($this->temp_file[$cnt], $this->save_dir); 145 // すでに保存ファイルがあった場合は削除する。145 // ¤¹¤Ç¤ËÊݸ¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ïºï½ü¤¹¤ë¡£ 146 146 if($this->save_file[$cnt] != "" && !ereg("^sub/", $this->save_file[$cnt])) { 147 147 $objImage->deleteImage($this->save_file[$cnt], $this->save_dir); … … 152 152 } 153 153 154 // HIDDEN 用のファイル名配列を返す154 // HIDDENÍѤΥե¡¥¤¥ë̾ÇÛÎó¤òÊÖ¤¹ 155 155 function getHiddenFileList() { 156 156 $cnt = 0; … … 167 167 } 168 168 169 // HIDDEN で送られてきたファイル名を取得する169 // HIDDEN¤ÇÁ÷¤é¤ì¤Æ¤¤¿¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ¤¹¤ë 170 170 function setHiddenFileList($arrPOST) { 171 171 $cnt = 0; … … 183 183 } 184 184 185 // フォームに渡す用のファイル情報配列を返す185 // ¥Õ¥©¡¼¥à¤ËÅϤ¹ÍѤΥե¡¥¤¥ë¾ðÊóÇÛÎó¤òÊÖ¤¹ 186 186 function getFormFileList($temp_url, $save_url, $real_size = false) { 187 187 … … 189 189 foreach($this->keyname as $val) { 190 190 if($this->temp_file[$cnt] != "") { 191 // ファイルパスチェック(パスのスラッシュ/が連続しないようにする。)191 // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¥Á¥§¥Ã¥¯(¥Ñ¥¹¤Î¥¹¥é¥Ã¥·¥å/¤¬Ï¢Â³¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£) 192 192 if(ereg("/$", $temp_url)) { 193 193 $arrRet[$val]['filepath'] = $temp_url . $this->temp_file[$cnt]; … … 197 197 $arrRet[$val]['filepath_dir'] = $this->temp_dir . $this->temp_file[$cnt]; 198 198 } elseif ($this->save_file[$cnt] != "") { 199 // ファイルパスチェック(パスのスラッシュ/が連続しないようにする。)199 // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¥Á¥§¥Ã¥¯(¥Ñ¥¹¤Î¥¹¥é¥Ã¥·¥å/¤¬Ï¢Â³¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£) 200 200 if(ereg("/$", $save_url)) { 201 201 $arrRet[$val]['filepath'] = $save_url . $this->save_file[$cnt]; … … 209 209 if($real_size){ 210 210 list($width, $height) = getimagesize($arrRet[$val]['filepath_dir']); 211 // ファイル横幅211 // ¥Õ¥¡¥¤¥ë²£Éý 212 212 $arrRet[$val]['width'] = $width; 213 // ファイル縦幅213 // ¥Õ¥¡¥¤¥ë½ÄÉý 214 214 $arrRet[$val]['height'] = $height; 215 215 }else{ 216 // ファイル横幅216 // ¥Õ¥¡¥¤¥ë²£Éý 217 217 $arrRet[$val]['width'] = $this->width[$cnt]; 218 // ファイル縦幅218 // ¥Õ¥¡¥¤¥ë½ÄÉý 219 219 $arrRet[$val]['height'] = $this->height[$cnt]; 220 220 } 221 // 表示名221 // ɽ¼¨Ì¾ 222 222 $arrRet[$val]['disp_name'] = $this->disp_name[$cnt]; 223 223 } … … 227 227 } 228 228 229 // DB 保存用のファイル名配列を返す229 // DBÊݸÍѤΥե¡¥¤¥ë̾ÇÛÎó¤òÊÖ¤¹ 230 230 function getDBFileList() { 231 231 $cnt = 0; … … 241 241 } 242 242 243 // DB で保存されたファイル名配列をセットする243 // DB¤ÇÊݸ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾ÇÛÎó¤ò¥»¥Ã¥È¤¹¤ë 244 244 function setDBFileList($arrVal) { 245 245 $cnt = 0; … … 252 252 } 253 253 254 // 画像をセットする254 // ²èÁü¤ò¥»¥Ã¥È¤¹¤ë 255 255 function setDBImageList($arrVal) { 256 256 $cnt = 0; … … 263 263 } 264 264 265 // DB 上のファイルの内削除要求があったファイルを削除する。265 // DB¾å¤Î¥Õ¥¡¥¤¥ë¤ÎÆâºï½üÍ׵᤬¤¢¤Ã¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£ 266 266 function deleteDBFile($arrVal) { 267 267 $objImage = new SC_Image($this->temp_dir); … … 277 277 } 278 278 279 // 必須判定279 // ɬ¿ÜȽÄê 280 280 function checkEXISTS($keyname = "") { 281 281 $cnt = 0; … … 283 283 foreach($this->keyname as $val) { 284 284 if($val == $keyname || $keyname == "") { 285 // 必須であればエラーチェック285 // ɬ¿Ü¤Ç¤¢¤ì¤Ð¥¨¥é¡¼¥Á¥§¥Ã¥¯ 286 286 if ($this->necessary[$cnt] == true) { 287 287 if($this->save_file[$cnt] == "" && $this->temp_file[$cnt] == "") { 288 $arrRet[$val] = " ※ " . $this->disp_name[$cnt] . "がアップロードされていません。<br>";288 $arrRet[$val] = "¢¨ " . $this->disp_name[$cnt] . "¤¬¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br>"; 289 289 } 290 290 } … … 295 295 } 296 296 297 // 拡大率を指定して画像保存297 // ³ÈÂçΨ¤ò»ØÄꤷ¤Æ²èÁüÊݸ 298 298 function saveResizeImage($keyname, $to_w, $to_h) { 299 299 $path = ""; 300 300 301 // keyname の添付ファイルを取得301 // keyname¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ 302 302 $arrImageKey = array_flip($this->keyname); 303 303 $file = $this->temp_file[$arrImageKey[$keyname]]; … … 306 306 $path = $this->makeThumb($filepath, $to_w, $to_h); 307 307 308 // ファイル名だけ返す308 // ¥Õ¥¡¥¤¥ë̾¤À¤±ÊÖ¤¹ 309 309 return basename($path); 310 310 }
Note: See TracChangeset
for help on using the changeset viewer.
