电脑安全

您当前的位置:主页 > 电脑安全 >

php多文件上传-网络编程

来源:[db:来源]标题:   新宋体    编辑:电脑技术全能网 时间:2019-09-19 06:21

原标题:php多文件上传-网络编程
   /*多文件上传类修正:Linvo2008-2-15*/classmore_file_upload{constFILE_PATH='../upfileclass/uploadfile/';var$file_type;var$file_type_array;var$file_type_real_array;var$file_type_string;var$file_name;var$file_size;var$file_tmp_name;var$file_error;var$handledate;static$totalsize=0;function__construct($file_name,$file_error,$file_size,$file_tmp_name,$file_type){$this->handledate=date('m-d-Y');if(!empty($file_name)){$this->file_name=$file_name;$this->file_error=$file_error;$this->file_size=$file_size;$this->file_tmp_name=$file_tmp_name;$this->file_type=$file_type;$this->file_type_array=array('/','image/gif','image/jpg','image/jpeg','image/pjpeg','image/png');$this->file_type_real_array=array(0.1,'jpg'=>74707370,'gif'=>7173,'bmp'=>6677,'png'=>807871);$this->show_execute_message($this->file_error,$this->file_name,$this->file_type,$this->file_size);}}function__destruct(){$this->file_name=NULL;$this->file_error=NULL;$this->file_size=NULL;$this->file_tmp_name=NULL;$this->file_type=NULL;self::$totalsize=0;}functionshow_execute_message($smfileerror,$smfilename,$smfiletype,$smfilesize){if($smfileerror>0){switch($smfileerror){case1:$smfilemessage='<strong>文件超越效劳器的商定巨细!</strong>';break;case2:$smfilemessage='<strong>文件超越指定的文件巨细!</strong>';break;case3:$smfilemessage='<strong>文件只上传了局部!</strong>';break;case4:echo"$this->file_name".'文件上传失利!<br/>';break;}self::__destruct();}else{$smfiletypeflag=array_search($smfiletype,$this->file_type_array);//停止实在格局考证if($smfiletypeflag!=false){$file=fopen($this->file_tmp_name,"rb");$bin=fread($file,10);fclose($file);$strInfo=@unpack("c10chars",$bin);$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);$smfiletypeflag=array_search($typeCode,$this->file_type_real_array);if($smfiletypeflag==false){//推断能否是png图片$typeCode=intval($strInfo['chars2'].$strInfo['chars3'].$strInfo['chars4']);$smfiletypeflag=array_search($typeCode,$this->file_type_real_array);if($smfiletypeflag==false){//推断能否是jpg图片$typeCode=intval($strInfo['chars7'].$strInfo['chars8'].$strInfo['chars9'].$strInfo['chars10']);$smfiletypeflag=array_search($typeCode,$this->file_type_real_array);}}}if($smfiletypeflag==false){$smfilemessage='<strong>文件范例错误,请核实!</strong>';self::__destruct();}else{$resflag=$this->move_file($this->file_tmp_name,$this->file_name);if($resflag==1){$smfilemessage='文件上传胜利!';self::$totalsize+=intval($smfilesize);self::__destruct();}else{$smfilemessage='<strong>文件上传失利!</strong>';self::__destruct();}}}$smfilesizeformat=$this->size_BKM($smfilesize);echo'<tr><tdalign="left">'.$smfilename.'</td><tdalign="center">'.$smfiletype.'</td><tdalign="center">'.$smfilesizeformat.'</td><tdalign="center">'.$smfilemessage.'</td></tr>';}functionmove_file($mvfiletmp,$mvfilename){//挪动文件$mvfilenamearr=explode('.',basename($mvfilename));$mvfilenamearr[0]=$this->rand_string();$mvfilename=implode('.',$mvfilenamearr);if(is_uploaded_file($mvfiletmp)){$uploadfile=self::FILE_PATH."$mvfilename";$result=move_uploaded_file($mvfiletmp,$uploadfile);return$result;}}functionrand_string(){$string=md5(uniqid(rand().microtime()));return$string;}functionsize_BKM($size){//B/KB/MB单元转换if($size<1024){$size_BKM=(string)$size."B";}elseif($size<(1024*1024)){$size_BKM=number_format((double)($size/1024),1)."KB";}else{$size_BKM=number_format((double)($size/(1024*1024)),1)."MB";}return$size_BKM;}}