类实例_一个单个文件上传类c_upload_one

/***********************move_uploaded_file()函数及$_FILES[]实现单个文件上传***********************a
*功能说明:实现单个文件上传
*建立人员:肖红阳
*建立日期:2010-07-21
*修改日期:2010-07-22
*设计思想:1.传送开关(action)打开开始处理2.判断过大?断开重新指定:继续3.文件是否传完到缓冲区?用move_uploaded_file()移动到终点位置:显示上传成功或失败
*使用说明:  
    


     
     
     
    

          include ('class/c_file/c_upload_one.php');  
     $up = new c_upload_one('post','postok','./pic','u_file','30',$_SERVER['PHP_SELF']);
     ?>
*******************************************/
class c_upload_one{
public $action;     //传送开关名在表单中的name值
public $path;     //上传的目的路径
public $filename;    //上传的文件名
public $maxsize;    //文件最大容量数值以m兆为单位

function __construct($action,$actionvalue,$path,$filename,$maxsize,$location){
   $this->action=$action;       //传送开关名在表单中的name值
   $this->actionvalue=$actionvalue;    //传送开关名的value值
   $this->path=$path;        //上传的目的路径
   $this->filename=$filename;      //上传表单中的type为file的name值
   $this->maxsize_toB = $maxsize*1048576 ;   //文件最在值以B为单位值
   $this->maxsize_toM= $maxsize;     //文件最在值以m为单位值
   $this->location = $location;     //上传完成后转向的地址

   $this->upload();
}

function upload(){
   if(!is_dir($this->path)){ echo "";}

   if($_POST[$this->action]==$this->actionvalue)              //判断传送开关是否触发
   {
    if($_FILES[$this->filename][size]>$this->maxsize_toB){           //判断文件是否过大
     echo " ";
    }
    else if($_FILES[$this->filename][tmp_name]){
     //$path=$this->path;
     move_uploaded_file($_FILES[$this->filename][tmp_name],$this->path.$_FILES[$this->filename][name]);//将文件从缓存中移到目标文件夹  
     $path=$this->path."/";
     echo "";//以get方式返回目录及文件名称以供它用  
    
    }
    else echo "";
   }

}

function filename(){
   echo $this->filename;
}
}
?>

你可能感兴趣的:(PHP_study,upload,c,action,file,path,function)