【www.gdgbn.com--qq教程】


/**
*TTR上传类
*2007-09-22
*[url=http://www.gx3.cn/]http://www.Gx3.cn[/url]
*QQ:252319874
**/

class TTRUpload extends 
Error
{
        const filesize=81200000
;
        private $uploadpath="uploadfile/"
;
        private $savepath=null
;
        private $uploadfilename=null;                                
//单个文件为文件名,批量文件为xxxx|xxxx格式,请注意
        private $ext=array("jpg","gif","png"
);
        private $error=null
;
        private $file=null
;        
        private $uploadtype=null
;
        private $filename=null
;
        
        
//构造函数,$type:ONE单个上传 ANY批量上传;
        public function __construct($file,$type="ONE"
)
        {
                if($type!="ONE" && $type!="ANY"
)
                {
                        echo "<script language="javascript">alert("初始化请选择ONE或者ANY")</script>"
;
                        exit;
                }
                $this->uploadtype=$type
;
                $this->file=$file
;
        }
        
        private function createFileName
()
        {
                return $this->filename="TTR_".time().$this->getRandomN(4
);
        }
                
        private function getUploadPath
()
        {
                if(substr($this->uploadpath,-1,1)!="/"

                {
                        $this->savepath=$this->uploadpath."/".date("Ym"
);
                }else{
                        $this->savepath=$this->uploadpath.date("Ym"
);
                }
                $this->savepath=$this->getFolder($this->savepath
);
                return true
;
        }
        
        private function getFileExt($tempfilename
)
        {
                return end(explode(".",$tempfilename
));
        }
        
        private function getExt
()
        {
                if(in_array(strtolower($this->getFileExt($tempfilename)),$this->ext
))
                {
                        return true
;
                }else{
                        return false
;        
                }
        }
        
        private function getFolder($folder
)
        {
                if(!is_dir($folder
))
                {
                        mkdir($folder
);
                }
                return $folder."/"
;
        }
        
        
        public function upload
()
        {
                if($this->uploadtype=="ONE"
)
                {
                        

                        if($this->getExt($this->file["type"
]))
                        {
                                
                                parent::errorExt
();
                                
                        }else if($this->file["size"]>self::filesize
){
                                
                                parent::errorFileSize
();
                                
                        }else if(!$this->getUploadPath
()){
                                
                                parent::errorUploadPath
();
                                
                        }else{
                                $filenametemp=$this->createFileName
();
                                $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file["name"
]);
                                if(move_uploaded_file($this->file["tmp_name"],$filename
))
                                {        
                                        $this->uploadfilename=$filenametemp
;
                                        parent::okMoved
();                        
                                        
                                
                                }else{
                                        parent::errorMoveUpload
();
                                }
                        }
                }else if($this->uploadtype=="ANY"
){

                        for($i=0;$ifile);$i
++)
                        {
                        
                                if($this->getExt($this->file[$i]["type"
]))
                                {
                                        parent::errorExt
();
                                        
                                }else if($this->file[$i]["size"]>self::filesize
){
                                        
                                        parent::errorFileSize
();
                                        
                                }else if(!$this->getUploadPath
()){
                                        
                                        parent::errorUploadPath
();
                                        
                                }else{
                                        $filenametemp=$this->createFileName
();
                                        $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file[$i]["name"
]);
                                        if(move_uploaded_file($this->file[$i]["tmp_name"],$filename
))
                                        {        
                                                $str.=$filenametemp."|"
;
                                                
                                        }else{
                                                parent::errorMoveUpload
();
                                        }
                                        
                                }
                                
                        }
                        $this->uploadfilename=substr($str,0,strlen($str)-1
);        
                        parent::okMoved
();
                }
        }
        
        public function getUploadFileName
()
        {
                return $this->uploadfilename
;
        }
        
        public function setUploadPath($path
)
        {
                $this->uploadpath=$path
;
        }
        
        
        private function getRandomN($n
)
        {
                if ($n < 1 || $n>10)  return ""
;
        
                $ary_num= array(0,1,2,3,4,5,6,7,8,9
);
                $return =""
;
                for ($i=0;$i<$n;$i
++)
                {
                        $randn = rand(0,9-$i
);
                        $return .= $ary_num[$randn
];
                        $ary_num[$randn] = $ary_num[9-$i
];
                }
                return $return
;
        }

        
        
        public function __destruct
()
        {
                $this->uploadfilename=null
;
                $this->uploadtype=null
;
                $this->file=null
;
                $this->savepath=null
;
        }
        
}

class 
Error
{
        public static function errorFileSize
()
        {
                echo "超出最大上传限制"
;
        }
        
        public static function errorExt
()
        {
                echo "此类文件不允许上传"
;
        }
        
        public static function errorUploadPath
()
        {
                echo "上传路径不正确"
;
        }
        
        public static function errorMoveUpload
()
        {
                echo "上传失败"
;
        }
        
        public static function okMoved
()
        {
                echo "上传成功!"
;
        }
        
        public static function okArrayMoved
()
        {
                echo "上传成功!"
;
        }
}


实例应用:

 


require_once("include/upload.class.php");
if($_POST["button"
])
{
    
//print_r($_FILES);
    //多个上传
    $upload = new TTRUpload(array($_FILES["file1"],$_FILES["file2"],$_FILES["file3"],$_FILES["file4"]),"ANY"
);

    
//单个上传
    //$upload = new TTRUpload($_FILES["file1"]);
    $upload->upload
();
    echo $upload->getUploadFileName
();
}
?>




Untitled Document




  
  
  
  
  
  
  
  
  


本文来源:http://www.gdgbn.com/bangongshuma/11840/