PHP多文件上传类实例_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($smfileerror0){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’trtdalign=left’.$smfilename.’/tdtdalign=center’.$smfiletype.’/tdtdalign=center’.$smfilesizeformat.’/tdtdalign=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($size1024){$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;}}

本文实例讲述了PHP多文件上传类。分享给大家供大家参考。具体如下:复制代码 代码如下:handledate=date; if {
$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;
$this->$totalsize = 0;}function
show_execute_message($smfileerror,$smfilename,$smfiletype,$smfilesize){if{
switch { case 1: $smfilemessage=’文件超过服务器的约定大小!‘;break;
case 2: $smfilemessage =’文件超过指定的文件大小!‘;break; case 3:
$smfilemessage=’文件只上传了部分!‘;break; case 4: echo
“$this->$file_name “.’文件上传失败!
‘;break; } self::__destruct();}else{ $smfiletypeflag =
array_search($smfiletype,$this->$file_type_array);//进行真实格式验证if($smfiletypeflag
!= false){$file = fopen($this->$file_tmp_name, “rb”);$bin =
fread;fclose;$strInfo = @unpack;$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=’文件类型不对,请核实!‘;self::__destruct();}else{$resflag

$$this->move_file($$this->$file_tmp_name,$this->$file_name);if
{$smfilemessage = ‘文件上传成功!’;$this->totalsize +=
intval;self::__destruct();}else{$smfilemessage =
文件上传失败!‘;self::__destruct();}}}$$smfilesizeformat =
$this->size_BKM;echo ‘

‘.$smfilename.’

‘.$smfiletype.’

‘.$smfilesizeformat.’

‘.smfilemessage.’

‘;}function move_file($mvfiletmp,$mvfilename){ //移动文件$mvfilenamearr
= explode(‘.’,basename;$mvfilenamearr[0] =
$this->rand_string();$mvfilename = implode;if
(is_uploaded_file{$uploadfile = self::FILE_PATH.”$mvfilename”;$result
= move_uploaded_file($mvfiletmp,$uploadfile);return $result;}}function
rand_string(){$string = md5.microtime;return $string;}function
size_BKM{ // B/KB/MB单位转换if{$size_BKM = $size . ”
B”;}elseif){$size_BKM = number_format . ” KB”;}else{$size_BKM =
number_format,1).” MB”;}return $size_BKM;}}?>

希望本文所述对大家的php程序设计有所帮助。

发表评论

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