Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
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
  • branches/feature-module-update/data/class/SC_UploadFile.php

    r12157 r15078  
    99require_once($SC_UPLOADFILE_DIR . "/../lib/gdthumb.php");    
    1010 
    11 /* ¥¢¥Ã¥×¥í¡¼¥É¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹ */ 
     11/* アップロードファイル管理クラス */ 
    1212class SC_UploadFile { 
    1313    var $temp_dir; 
    1414    var $save_dir; 
    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     // ¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹ 
     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    // ファイル管理クラス 
    2727    function SC_UploadFile($temp_dir, $save_dir) { 
    2828        $this->temp_dir = $temp_dir; 
     
    3131    } 
    3232 
    33     // ¥Õ¥¡¥¤¥ë¾ðÊóÄɲà
     33    // ファイル情報追加 
    3434    function addFile($disp_name, $keyname, $arrExt, $size, $necessary=false, $width=0, $height=0, $image=true) { 
    3535        $this->disp_name[] = $disp_name; 
     
    4242        $this->image[] = $image; 
    4343    } 
    44     // ¥µ¥à¥Í¥¤¥ë²èÁü¤ÎºîÀ® 
     44    // サムネイル画像の作成 
    4545    function makeThumb($src_file, $width, $height) { 
    46         // °ì°Õ¤ÊID¤ò¼èÆÀ¤¹¤ë¡£ 
     46        // 一意なIDを取得する。 
    4747        $uniqname = date("mdHi") . "_" . uniqid(""); 
    4848         
     
    5353         
    5454        if($ret[0] != 1) { 
    55             // ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨ 
     55            // エラーメッセージの表示 
    5656            print($ret[1]); 
    5757            exit; 
     
    6161    } 
    6262         
    63     // ¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£ 
     63    // アップロードされたファイルを保存する。 
    6464    function makeTempFile($keyname, $rename = true) { 
    6565        $objErr = new SC_CheckError(); 
     
    6868         
    6969        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 />"; 
    7171        } else { 
    7272            foreach($this->keyname as $val) { 
    73                 // °ìÃפ·¤¿¥­¡¼¤Î¥Õ¥¡¥¤¥ë¤Ë¾ðÊó¤òÊݸ¤¹¤ë¡£ 
     73                // 一致したキーのファイルに情報を保存する。 
    7474                if ($val == $keyname) { 
    75                     // ³ÈÄ¥»Ò¥Á¥§¥Ã¥¯ 
     75                    // 拡張子チェック 
    7676                    $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->arrExt[$cnt]), array("FILE_EXT_CHECK")); 
    77                     // ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¥Á¥§¥Ã¥¯ 
     77                    // ファイルサイズチェック 
    7878                    $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->size[$cnt]), array("FILE_SIZE_CHECK")); 
    79                     // ¥¨¥é¡¼¤¬¤Ê¤¤¾ì¹ç 
     79                    // エラーがない場合 
    8080                    if(!isset($objErr->arrErr[$keyname])) { 
    81                         // ²èÁü¥Õ¥¡¥¤¥ë¤Î¾ì¹ç 
     81                        // 画像ファイルの場合 
    8282                        if($this->image[$cnt]) { 
    8383                            $this->temp_file[$cnt] = $this->makeThumb($_FILES[$keyname]['tmp_name'], $this->width[$cnt], $this->height[$cnt]); 
    84                         // ²èÁü¥Õ¥¡¥¤¥ë°Ê³°¤Î¾ì¹ç 
     84                        // 画像ファイル以外の場合 
    8585                        } else { 
    86                             // °ì°Õ¤Ê¥Õ¥¡¥¤¥ë̾¤òºîÀ®¤¹¤ë¡£ 
     86                            // 一意なファイル名を作成する。 
    8787                            if($rename) { 
    8888                                $uniqname = date("mdHi") . "_" . uniqid("")."."; 
     
    102102    } 
    103103 
    104     // ²èÁü¤òºï½ü¤¹¤ë¡£ 
     104    // 画像を削除する。 
    105105    function deleteFile($keyname) { 
    106106        $objImage = new SC_Image($this->temp_dir); 
     
    108108        foreach($this->keyname as $val) { 
    109109            if ($val == $keyname) { 
    110                 // °ì»þ¥Õ¥¡¥¤¥ë¤Î¾ì¹çºï½ü¤¹¤ë¡£ 
     110                // 一時ファイルの場合削除する。 
    111111                if($this->temp_file[$cnt] != "") { 
    112112                    $objImage->deleteImage($this->temp_file[$cnt], $this->save_dir); 
     
    119119    } 
    120120     
    121     // °ì»þ¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë¡£ 
     121    // 一時ファイルパスを取得する。 
    122122    function getTempFilePath($keyname) { 
    123123        $cnt = 0; 
     
    134134    } 
    135135     
    136     // °ì»þ¥Õ¥¡¥¤¥ë¤òÊݸ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ü¤¹ 
     136    // 一時ファイルを保存ディレクトリに移す 
    137137    function moveTempFile() { 
    138138        $cnt = 0; 
     
    143143                                                     
    144144                $objImage->moveTempImage($this->temp_file[$cnt], $this->save_dir); 
    145                 // ¤¹¤Ç¤ËÊݸ¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ïºï½ü¤¹¤ë¡£ 
     145                // すでに保存ファイルがあった場合は削除する。 
    146146                if($this->save_file[$cnt] != "" && !ereg("^sub/", $this->save_file[$cnt])) { 
    147147                    $objImage->deleteImage($this->save_file[$cnt], $this->save_dir); 
     
    152152    } 
    153153     
    154     // HIDDENÍѤΥե¡¥¤¥ë̾ÇÛÎó¤òÊÖ¤¹ 
     154    // HIDDEN用のファイル名配列を返す 
    155155    function getHiddenFileList() { 
    156156        $cnt = 0; 
     
    167167    } 
    168168     
    169     // HIDDEN¤ÇÁ÷¤é¤ì¤Æ¤­¤¿¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ¤¹¤ë 
     169    // HIDDENで送られてきたファイル名を取得する 
    170170    function setHiddenFileList($arrPOST) { 
    171171        $cnt = 0; 
     
    183183    } 
    184184     
    185     // ¥Õ¥©¡¼¥à¤ËÅϤ¹ÍѤΥե¡¥¤¥ë¾ðÊóÇÛÎó¤òÊÖ¤¹ 
     185    // フォームに渡す用のファイル情報配列を返す 
    186186    function getFormFileList($temp_url, $save_url, $real_size = false) { 
    187187 
     
    189189        foreach($this->keyname as $val) { 
    190190            if($this->temp_file[$cnt] != "") { 
    191                 // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¥Á¥§¥Ã¥¯(¥Ñ¥¹¤Î¥¹¥é¥Ã¥·¥å/¤¬Ï¢Â³¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£) 
     191                // ファイルパスチェック(パスのスラッシュ/が連続しないようにする。) 
    192192                if(ereg("/$", $temp_url)) { 
    193193                    $arrRet[$val]['filepath'] = $temp_url . $this->temp_file[$cnt]; 
     
    197197                $arrRet[$val]['real_filepath'] = $this->temp_dir . $this->temp_file[$cnt]; 
    198198            } elseif ($this->save_file[$cnt] != "") { 
    199                 // ¥Õ¥¡¥¤¥ë¥Ñ¥¹¥Á¥§¥Ã¥¯(¥Ñ¥¹¤Î¥¹¥é¥Ã¥·¥å/¤¬Ï¢Â³¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£) 
     199                // ファイルパスチェック(パスのスラッシュ/が連続しないようにする。) 
    200200                if(ereg("/$", $save_url)) { 
    201201                    $arrRet[$val]['filepath'] = $save_url . $this->save_file[$cnt]; 
     
    210210                        list($width, $height) = getimagesize($arrRet[$val]['real_filepath']); 
    211211                    } 
    212                     // ¥Õ¥¡¥¤¥ë²£Éý 
     212                    // ファイル横幅 
    213213                    $arrRet[$val]['width'] = $width; 
    214                     // ¥Õ¥¡¥¤¥ë½ÄÉý 
     214                    // ファイル縦幅 
    215215                    $arrRet[$val]['height'] = $height; 
    216216                }else{ 
    217                     // ¥Õ¥¡¥¤¥ë²£Éý 
     217                    // ファイル横幅 
    218218                    $arrRet[$val]['width'] = $this->width[$cnt]; 
    219                     // ¥Õ¥¡¥¤¥ë½ÄÉý 
     219                    // ファイル縦幅 
    220220                    $arrRet[$val]['height'] = $this->height[$cnt]; 
    221221                } 
    222                 // ɽ¼¨Ì¾ 
     222                // 表示名 
    223223                $arrRet[$val]['disp_name'] = $this->disp_name[$cnt]; 
    224224            } 
     
    228228    } 
    229229     
    230     // DBÊݸÍѤΥե¡¥¤¥ë̾ÇÛÎó¤òÊÖ¤¹ 
     230    // DB保存用のファイル名配列を返す 
    231231    function getDBFileList() { 
    232232        $cnt = 0; 
     
    242242    } 
    243243     
    244     // DB¤ÇÊݸ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾ÇÛÎó¤ò¥»¥Ã¥È¤¹¤ë 
     244    // DBで保存されたファイル名配列をセットする 
    245245    function setDBFileList($arrVal) { 
    246246        $cnt = 0; 
     
    253253    } 
    254254     
    255     // ²èÁü¤ò¥»¥Ã¥È¤¹¤ë 
     255    // 画像をセットする 
    256256    function setDBImageList($arrVal) { 
    257257        $cnt = 0; 
     
    264264    } 
    265265     
    266     // DB¾å¤Î¥Õ¥¡¥¤¥ë¤ÎÆâºï½üÍ׵᤬¤¢¤Ã¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£  
     266    // DB上のファイルの内削除要求があったファイルを削除する。  
    267267    function deleteDBFile($arrVal) { 
    268268        $objImage = new SC_Image($this->temp_dir); 
     
    278278    } 
    279279     
    280     // ɬ¿ÜȽÄê 
     280    // 必須判定 
    281281    function checkEXISTS($keyname = "") { 
    282282        $cnt = 0; 
     
    284284        foreach($this->keyname as $val) { 
    285285            if($val == $keyname || $keyname == "") { 
    286                 // ɬ¿Ü¤Ç¤¢¤ì¤Ð¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     286                // 必須であればエラーチェック 
    287287                if ($this->necessary[$cnt] == true) { 
    288288                    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>"; 
    290290                    } 
    291291                } 
     
    296296    } 
    297297         
    298     // ³ÈÂçΨ¤ò»ØÄꤷ¤Æ²èÁüÊݸ 
     298    // 拡大率を指定して画像保存 
    299299    function saveResizeImage($keyname, $to_w, $to_h) { 
    300300        $path = ""; 
    301301         
    302         // keyname¤ÎźÉÕ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ 
     302        // keynameの添付ファイルを取得 
    303303        $arrImageKey = array_flip($this->keyname); 
    304304        $file = $this->temp_file[$arrImageKey[$keyname]]; 
     
    307307        $path = $this->makeThumb($filepath, $to_w, $to_h); 
    308308         
    309         // ¥Õ¥¡¥¤¥ë̾¤À¤±ÊÖ¤¹ 
     309        // ファイル名だけ返す 
    310310        return basename($path); 
    311311    } 
Note: See TracChangeset for help on using the changeset viewer.