您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 日喀则分类信息网,免费分类信息发布

PHP实现的多文件上传类及用法示例_PHP

2025/1/3 2:54:29发布11次查看
本文实例讲述了php实现的多文件上传类及用法。分享给大家供大家参考,具体如下:
1、upfiles.css.php 文件
$val){ $key = strtolower($key); //查看传进来的数组里下标是否与成员属性相同 //print_r(array_keys(get_class_vars(get_class($this)))); if(!in_array($key,array_keys(get_class_vars(get_class($this))))){ continue; }else{ $this->setoption($key,$val); } } } private function setoption($key,$val){ $this->$key = $val; //echo $this->errornum.
; } //检查文件上传路径 private function checkfilepath(){ //echo $this->filepath; if(empty($this->filepath)){ $this->setoption('errornum',-5); return false; } if(!file_exists($this->filepath) || !is_writable($this->filepath)){ if(!@mkdir($this->filepath,0755)){ $this->setoption('errornum','-4'); return false; } } return true; } //获取错误信息 private function geterror(){ $str = 上传文件{$this->originname}出错---; switch($this->errornum){ case 4; $str .= 没有文件被上传;break; case 3; $str .= 文件只被部分上传;break; case 2; $str .= 超过文件表单允许大小;break; case 1; $str .= 超过php.ini中允许大小;break; case -1; $str .= 未允许的类型;break; case -2; $str .= 文件过大,不能超过.$this->maxsize.个字节;break; case -3; $str .= 上传失败;break; case -4; $str .= 建立文件上传目录失败;break; case -5; $str .= 必须指定上传路径;break; default; $str .= 未知错误; } return $str.
; } //检查文件类型 private function checkfiletype(){ //echo $this->filetype; if(!in_array(strtolower($this->filetype),$this->allowtype)){ $this->setoption('errornum','-1'); return false; }else{ return true; } } //检查文件大小 private function checkfilesize(){ if($this->filesize > $this->maxsize){ $this->setoption('errornum','-2'); return false; }else{ return true; } } //处理随机文件名称 private function prorandfile(){ $ch = $this->israndfile; if($ch == 'true'){ return true; }else{ return false; } } // private function setfiles($name=,$tmp_name=,$size=,$error=){ //检查上传路径 if(!$this->checkfilepath()){ //$this->errormessg = $this->geterror(); return false; } //echo $error.
; if($error){ $this->setoption('errornum',$error); return false; } $arrstr = explode('.',$name); $type = end($arrstr); $this->setoption('originname',$name); $this->setoption('filesize',$size); $this->setoption('filetype',$type); $this->setoption('tmpfilename',$tmp_name); return true; } //检查是否有文件上传 function checkfile($formname){ if(!@$_files[$formname]){ $this->setoption('errornum',4); return false; }else{ return true; } } //上传文件 function uploadefile($formname){ if(!$this->checkfile($formname)){ $this->errormessg = $this->geterror(); return false; } $return = true; $name = @$_files[$formname]['name']; $tmp_name = @$_files[$formname]['tmp_name']; $size = @$_files[$formname]['size']; $error = @$_files[$formname]['error']; //$type = $_files[$formname]['type']; if(is_array($name)){ $errors = array(); for($i=0; $isetfiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){ if(!$this->checkfilesize() || !$this->checkfiletype()){ $errors[] = $this->geterror(); $return = false; } }else{ $errors[] = $this->geterror(); $return = false; } if(!$return) $this->setfiles(); } if($return){ $newfilen = array(); for($i=0; $isetfiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){ if(!$this->copyfile()){ $errors[] = $this->geterror(); $return = false; }else{ $newfilen[] = $this->newfilename; } } $this->newfilename = $newfilen; } } //print_r($errors); $this->errormessg = $errors; //echo $errors; return $return; }else{ if($this->setfiles($name,$tmp_name,$size,$error)){ $return = true; if($error) var_dump($error); if($this->checkfilesize() && $this->checkfiletype()){ }else{ $return = false; } }else{ $return = false; } if(!$return){ $this->errormessg = $this->geterror(); } return $return; } } //获取上传后的文件名 function getnewfile(){ return $this->newfilename; } //把文件拷贝到指定的路径 function copyfile(){ $filepath = rtrim($this->filepath,'/')./; if(!$this->errornum){ if($this->prorandfile()){ $this->newfilename = date('ymdhis').rand(1000,9999)...$this->filetype; }else{ $this->newfilename = $this->originname; } if(!move_uploaded_file($this->tmpfilename,$filepath.$this->newfilename)){ $this->setoption('errornum',-3); return false; }else{ return true; } }else{ return false; } } //上传错误后返回的消息 function gteerror(){ $err = $this->errormessg; return $err; } }?>
2、使用方法
uploade.php 文件:
'./upload','allowtype'=>array('php','bmp','gif','jpg','png'),'israndfile'=>true,'maxsize'=>'1000000'));if($upfile ->uploadefile('spic')){ $arrfile = $upfile ->getnewfile(); foreach($arrfile as $v){ echo $v,
; } echo 上传成功!;}else{ $err = $upfile ->gteerror(); if(is_array($err)){ foreach($err as $v1){ echo $v1,
; } }else{ echo $err; } //var_dump($err);}//var_dump($upfile);?>
html 文件:
无标题文档

更多关于php相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《php运算与运算符用法总结》、《php网络编程技巧总结》、《php基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
日喀则分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录