PHP实现的多文件上传类及用法示例_.docx

上传人:啊飒飒 文档编号:11619514 上传时间:2021-08-26 格式:DOCX 页数:14 大小:14.82KB
返回 下载 相关 举报
PHP实现的多文件上传类及用法示例_.docx_第1页
第1页 / 共14页
PHP实现的多文件上传类及用法示例_.docx_第2页
第2页 / 共14页
PHP实现的多文件上传类及用法示例_.docx_第3页
第3页 / 共14页
PHP实现的多文件上传类及用法示例_.docx_第4页
第4页 / 共14页
PHP实现的多文件上传类及用法示例_.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PHP实现的多文件上传类及用法示例_.docx》由会员分享,可在线阅读,更多相关《PHP实现的多文件上传类及用法示例_.docx(14页珍藏版)》请在三一文库上搜索。

1、PHP实现的多文件上传类及用法示例_ 本文实例讲解并描述了PHP实现的多文件上传类及用法。分享给大家供大家参考,具体如下: 1、upFiles.css.php 文件 ?php class UploadFiles private $maxsize = 1000000; /允许上传文件最大长度 private $allowtype = array(jpg,png,gif,jpeg);/允许上传文件类型 private $israndfile = true;/是否随机文件名 private $filepath;/上传路径 private $originName;/上传的源文件 private $tm

2、pfileName;/临时文件名 private $newfileName;/新文件名 private $fileSize;/文件大小 private $fileType;/文件类型 private $errorNum = 0;/错误号 private $errorMessg = array();/错误消息 /对成员初始化 function _construct($options = array() foreach($options as $key=$val) $key = strtolower($key); /查看传进来的数组里下标是否与成员属性相同 /print_r(array_keys(

3、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.br; /检查文件上传路径 private function checkfilePath() /echo $this-filepath; if(empty($this-f

4、ilepath) $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

5、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 .= 必需指定上传

6、路径;break; default; $str .= 未知错误; return $str.br; /检查文件类型 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-maxs

7、ize) $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

8、-getError(); return false; /echo $error.br; 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

9、 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$formnamename; $tm

10、p_name = $_FILES$formnametmp_name; $size = $_FILES$formnamesize; $error = $_FILES$formnameerror; /$type = $_FILES$formnametype; if(is_array($name) $errors = array(); for($i=0; $icount($name); $i+) if($this-setFiles($name$i,$tmp_name$i,$size$i,$error$i) if(!$this-checkfileSize() | !$this-checkfileTyp

11、e() $errors = $this-getError(); $return = false; else $errors = $this-getError(); $return = false; if(!$return) $this-setFiles(); if($return) $newfileN = array(); for($i=0; $icount($name); $i+) if($this-setFiles($name$i,$tmp_name$i,$size$i,$error$i) if(!$this-copyFile() $errors = $this-getError(); $

12、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-checkfileT

13、ype() 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-newf

14、ileName = 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-errorM

15、essg; return $err; ? 2、用法方法 uploade.php 文件: ?php /print_r($_FILESspic); header(Content-Type:text/html;charset=utf-8); /if($_FILESspic)echo ddddddddd; include(upFiles.css.php); $upfile = new UploadFiles(array(filepath=./upload,allowtype=array(php,bmp,gif,jpg,png),israndfile=true,maxsize=1000000); if(

16、$upfile -uploadeFile(spic) $arrfile = $upfile -getnewFile(); foreach($arrfile as $v) echo $v,br/; echo 上传胜利!; else $err = $upfile -gteerror(); if(is_array($err) foreach($err as $v1) echo $v1,br/; else echo $err; /var_dump($err); /var_dump($upfile); ? HTML 文件: !DOCTYPE html PUBLIC -/W3C/DTD XHTML 1.0

17、 Transitional/EN l1/DTD/xhtml1-transitional.dtd html xmlns=l head meta http-equiv=Content-Type content=text/html; charset=utf-8 / title无标题文档/title script type=text/javascript function Check() /alert(dddd); for(i=1; i9; i+) if(document.getElementById(v+i).value = ) document.getElementById(v+i).name =

18、 uu; /script /head body form name=upfile action=uploade.php method=post enctype=multipart/form-data input type=file name=spic id=v1 /br/ input type=file name=spic id=v2 /br/ input type=file name=spic id=v3 /br/ input type=file name=spic id=v4 /br/ input type=file name=spic id=v5 /br/ input type=file name=spic id=v6 /br/ input type=file name=spic id=v7 /br/ input type=file name=spic id=v8 /br/ input type=submit name=sub value=提交 onclick=return Check() / input type=reset name=res value=重填 / /form /body /html 盼望本文所述对大家PHP程序设计有所关心。 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1