PHP实现多文件上传的方法

              本文重点:PHP实现多文件上传的方法

              本文实例讲述了PHP实现多文件上传的方法。 分享给大家供大家参考。 具体实现方法如下:phpdefine(ROOT,D:/ProgramFiles/www/test/classFiles_Tool{protectedstatic$allowExt=array(.jpg,.jpeg,.png,.gif,.bmp,.svg,.chm,.pdf,.zip,.rar,.tar,.gz,.bzip2,.ppt,.docpublicstatic$wrong=array();publicstatic$path=array();protectedstatic$error=array(0=文件上传失败,没有错误发生,文件上传成功,1=文件上传失败,上传的文件超过了中upload_max_filesize选项限制的值,2=文件上传失败,上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值,3=文件上传失败,文件只有部分被上传,4=文件上传失败,没有文件被上传,5=文件上传失败,未允许的后缀,6=文件上传失败,找不到临时文件夹.和引进,7=文件上传失败,文件写入失败.引进,8=文件上传失败,未接收到表单域的NAME,9=文件上传失败,,错误未知);publicstaticfunctionupload($name){//检测是否接收到表单域的NAMEif(!isset($_FILES[$name])){self::$wrong[]=8;returnfalse;}//3维数组简化成2维数组$files=array_shift($_FILES);//获取后缀$files=self::get_Ext($files);//处理文件次数$n=count($files[name]);for($i=0;$i$i++){//查看当前文件是否有错误信息,有则跳过当前文件,处理下个文件if($files[error][$i]!=0){self::$wrong[$i+1]=$files[error][$i];continue;}//查看当前文件的后缀,是否允许,如果不允许,跳过当前文件if(!in_array($files[name][$i],self::$allowExt)){self::$wrong[$i+1]=5;continue;}//路径$dir=self::time_Dir();//文件名$name=self::rand_Name();//后缀$ext=$files[name][$i];//文件位置$path=$dir.$name.$ext;//移动临时文件,如果失败,跳过当前文件if(!move_uploaded_file($files[tmp_name][$i],$path)){self::$wrong[$i]=9;continue;}//存入路径self::$path[$i+1]=strtr($path,array(ROOT=));}returnself::$path;}//获取后缀的方法protectedstaticfunctionget_Ext($arr){if(!is_array($arr)||!isset($arr[name])){returnfalse;}foreach($arr[name]as$k=$v){$arr[name][$k]=strtolower(strrchr($v,.));}return$arr;}//以日期生成路径protectedstaticfunctiontime_Dir(){$dir=/images/.date(Y/m/d/,time());if(!is_dir($dir)){mkdir($dir,0777,true);}return$dir;}//生成随机文件名protectedstaticfunctionrand_Name(){$str=str_shuffle(1234567890qwertyuiopasdfghjklzxcvbnm$str=substr($str,0,6);return$str;}//错误接口publicstaticfunctionerrors(){foreach(self::$wrongas$k=$v){self::$wrong[$k]=第.$k.个.self::$error[$k];}returnself::$wrong;}}。