THinkPHP上の画像アップロードクラスの使用について


ThinkPHPが提供する公式の例では、画像クラスをアップロードするコードが非常に良いので、ここではどのように使用するかを分析します.
インスタンスコードは次のとおりです.
<?php 

class IndexAction extends Action { 

    public function index() { 
        $Photo = M('Photo'); 
        $list = $Photo->order('create_time desc')->limit(2)->findAll();
        $this->assign('list', $list); 
        $this->display(); 
    } 

    public function upload() { 
        if (!empty($_FILES)) { 
            //             
            $this->_upload(); 
            //$this->forward(); 
        } 
    } 

    //      
    protected function _upload() { 
        import("@.ORG.UploadFile"); 
        $upload = new UploadFile(); 
        //         
        $upload->maxSize = 3292200; 
        //         
        $upload->allowExts = explode(',', 'jpg,gif,png,jpeg'); 
        //         
        $upload->savePath = '/tp/Examples/File/Tpl/default/Public/Uploads/'; 
        //         ,         
        $upload->thumb = true; 
        //             
        $upload->imageClassPath = '@.ORG.Image'; 
        //               
        $upload->thumbPrefix = 'm_,s_';  //  2     
        //          
        $upload->thumbMaxWidth = '400,100'; 
        //          
        $upload->thumbMaxHeight = '400,100'; 
        //         
        $upload->saveRule = uniqid; 
        //     
        $upload->thumbRemoveOrigin = true; 
        if (!$upload->upload()) { 
            //       
            $this->error($upload->getErrorMsg()); 
        } else { 
            //            
            $uploadList = $upload->getUploadFileInfo(); 
            import("@.ORG.Image"); 
            // m_       , Image::water('    ','      ') 
            Image::water($uploadList[0]['savepath'].'m_'.$uploadList[0]['savename'], '/tp/Examples/File/Tpl/default/Public/Images/logo2.png');
            $_POST['image'] = $uploadList[0]['savename']; 
        } 
        $model = M('Photo'); 
        //         
        $data['image'] = $_POST['image']; 
        $data['create_time'] = time(); 
        $list = $model->add($data); 
        if ($list !== false) { 
            $this->success('      !'); 
        } else { 
            $this->error('      !'); 
        } 
    } 



} 

?>