非常经典的PHP文件上传类分享_php技巧_脚本之家

非常经典的PHP文件上传类分享_php技巧_脚本之家。文件上传是种类开支中比较见惯司空的效应,但文件上传的进程相比繁杂,只假若有文件上传的地点就要求编写制定那几个复杂的代码。为了能在历次开垦中回降效果的编辑撰写难度,也为了能节支时间,常常大家都会将那个往往使用的生龙活虎段代码封装到二个类中。

$value){ if (!in_array($key,get_class_vars{ continue; } $this->setOption; } } function uploadfile { $return=true; if  { $this->errormsg=$this->geterrorNum(); return false; } $name=$_FILES[$field]['name']; $tmpname=$_FILES[$field]['tmp_name']; $filesize=$_FILES[$field]['size']; $error=$_FILES[$field]['error']; if  { $errors=array(); for ;$i++){ if ($this->getFile($name[$i],$tmpname[$i],$filesize[$i],$errors[$i])) { if  && !$this->CheckType { $errors=$this->getErrorNum(); return false; } }else{ $errors=$this->getErrorNum(); return false; } if  { $this->getFile { $fileNames=array(); for ;$i++){ if ($this->getFile($name[$i], $tmpname[$i], $filesize[$i], $filesize[$i])) { $this->SetFileName(); if  { $errors[]=$this->getErrorNum(); $return=false; }else{ $fileNames[]=$this->getNewName(); } } } $this->newname=$fileNames; } $this->errormsg=$errors; return $return; }else{ if($this->getFile($name,$tmpname,filesize,$error)){ if{ return false; } if{ return false; } $this->SetFileName(); if  { return true; } }else{ return false; } if  { $this->setOption; $this->errormsg=$this->geterrorNum(); } return $return; } } /** +------------------------------------------------------------------------ *设置类属性值函数 +------------------------------------------------------------------------ * @param mix $key * @param mix $value */ private function setOption{ $key=strtolower; $this->$key=$value; } /** +--------------------------------------------------------------------------- * 获取文件变量参数函数 +--------------------------------------------------------------------------- * @param string $name * @param string $tmp_name * @param number $size * @param number $error */ private function getFile($name,$tmpname,$filetype,$filesize,$error=0){ $this->setOption; $this->setOption; $arrstr=explode; $this->setOption('FileType', $arrstr[count; $this->setOption('FileSize', $filesize); return true; } /** +------------------------------------------------------------------------- * 检查上传路径函数 +------------------------------------------------------------------------- * @return boolean */ private function CheckPath(){ if(empty{ $this->setOption; return false; } if (!file_exists||!is_writable { if (!@mkdir) { $this->setOption; return false; } } return true; } private function Is_Http_Post(){ if (!is_uploaded_file { $this->setOption; return false; }else{ return true; } } /** +-------------------------------------------------------------------- *检查文件尺寸函数 +-------------------------------------------------------------------- * @return boolean */ private function CheckSize(){ if ($this->filesize>$this->maxsize) { $this->setOption; return false; }else{ return true; } } /** +--------------------------------------------------------------- * 检查文件类型函数 +--------------------------------------------------------------- * @return boolean */ private function CheckType(){ if (in_array($this->filetype, $this->allowtype)) { return true; }else{ $this->setOption; return false; } } private function SetFileName(){ if  { $this->setOption('NewName', $this->RandName; }else{ $this->setOption('NewName',$this->orginame); } } /** +----------------------------------------------------------------- * 获取新文件名 +------------------------------------------------------------------ */ public function getNewName() { return $this->newname; } private function RandName(){ $rule=date.rand; return $rule.'.'.$this->filetype; } private function MoveFile(){ if  { $filepath=rtrim.'/'; $filepath.=$this->newname; if (@move_uploaded_file($this->tmpname,$filepath)) { return true; }else{ $this->errormsg=$this->setOption; } }else{ return false; } } /** +---------------------------------------------------------------- * 错误信息函数 +---------------------------------------------------------------- * @return string */ function getErrorNum() { $erstr="上传文件{$this->orginame}出错"; switch  { case 4: $erstr.="没有文件被上传"; break; case 3: $erstr.="文件只被部分上传"; break; case 2: $erstr.="上传文件超过了HTML表单MAX_FILE_SIZE指定的值"; break; case 1: $erstr.="上传文件超过了php.ini配置文件中upload_max_filesize的值"; break; case 0: $erstr="上传{$this->orginame}成功"; break; case -1: $erstr="未允许的类型"; break; case -2: $erstr.="文件过大,不能超过{$this->maxsize}个字节"; break; case -3: $erstr.="上传失败"; break; case -4: $erstr="创建上传目录失败,请重新指定上传目录"; break; case -5: $erstr="未指定上传路径"; break; case -6: $erstr="非法操作"; break; default: $erstr.="未知错误"; } return $erstr; } } ?> 

上述正是本文的全体内容,希望对大家学习php程序设计有所帮衬。

发表评论

电子邮件地址不会被公开。 必填项已用*标注