- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/data/class/SC_UploadFile.php
r12157 r15078 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]['real_filepath'] = $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]; … … 210 210 list($width, $height) = getimagesize($arrRet[$val]['real_filepath']); 211 211 } 212 // ¥Õ¥¡¥¤¥ë²£Éý212 // ファイル横幅 213 213 $arrRet[$val]['width'] = $width; 214 // ¥Õ¥¡¥¤¥ë½ÄÉý214 // ファイル縦幅 215 215 $arrRet[$val]['height'] = $height; 216 216 }else{ 217 // ¥Õ¥¡¥¤¥ë²£Éý217 // ファイル横幅 218 218 $arrRet[$val]['width'] = $this->width[$cnt]; 219 // ¥Õ¥¡¥¤¥ë½ÄÉý219 // ファイル縦幅 220 220 $arrRet[$val]['height'] = $this->height[$cnt]; 221 221 } 222 // ɽ¼¨Ì¾222 // 表示名 223 223 $arrRet[$val]['disp_name'] = $this->disp_name[$cnt]; 224 224 } … … 228 228 } 229 229 230 // DB ÊݸÍѤΥե¡¥¤¥ë̾ÇÛÎó¤òÊÖ¤¹230 // DB保存用のファイル名配列を返す 231 231 function getDBFileList() { 232 232 $cnt = 0; … … 242 242 } 243 243 244 // DB ¤ÇÊݸ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾ÇÛÎó¤ò¥»¥Ã¥È¤¹¤ë244 // DBで保存されたファイル名配列をセットする 245 245 function setDBFileList($arrVal) { 246 246 $cnt = 0; … … 253 253 } 254 254 255 // ²èÁü¤ò¥»¥Ã¥È¤¹¤ë255 // 画像をセットする 256 256 function setDBImageList($arrVal) { 257 257 $cnt = 0; … … 264 264 } 265 265 266 // DB ¾å¤Î¥Õ¥¡¥¤¥ë¤ÎÆâºï½üÍ׵᤬¤¢¤Ã¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£266 // DB上のファイルの内削除要求があったファイルを削除する。 267 267 function deleteDBFile($arrVal) { 268 268 $objImage = new SC_Image($this->temp_dir); … … 278 278 } 279 279 280 // ɬ¿ÜȽÄê280 // 必須判定 281 281 function checkEXISTS($keyname = "") { 282 282 $cnt = 0; … … 284 284 foreach($this->keyname as $val) { 285 285 if($val == $keyname || $keyname == "") { 286 // ɬ¿Ü¤Ç¤¢¤ì¤Ð¥¨¥é¡¼¥Á¥§¥Ã¥¯286 // 必須であればエラーチェック 287 287 if ($this->necessary[$cnt] == true) { 288 288 if($this->save_file[$cnt] == "" && $this->temp_file[$cnt] == "") { 289 $arrRet[$val] = " ¢¨ " . $this->disp_name[$cnt] . "¤¬¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br>";289 $arrRet[$val] = "※ " . $this->disp_name[$cnt] . "がアップロードされていません。<br>"; 290 290 } 291 291 } … … 296 296 } 297 297 298 // ³ÈÂçΨ¤ò»ØÄꤷ¤Æ²èÁüÊݸ298 // 拡大率を指定して画像保存 299 299 function saveResizeImage($keyname, $to_w, $to_h) { 300 300 $path = ""; 301 301 302 // keyname ¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ302 // keynameの添付ファイルを取得 303 303 $arrImageKey = array_flip($this->keyname); 304 304 $file = $this->temp_file[$arrImageKey[$keyname]]; … … 307 307 $path = $this->makeThumb($filepath, $to_w, $to_h); 308 308 309 // ¥Õ¥¡¥¤¥ë̾¤À¤±ÊÖ¤¹309 // ファイル名だけ返す 310 310 return basename($path); 311 311 }
Note: See TracChangeset
for help on using the changeset viewer.