PHP多文件上传类实例
发布时间:2020-12-13 02:27:12 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:PHP多文件上传类实例》要点: 本文介绍了PHP实例:PHP多文件上传类实例,希望对您有用。如果有疑问,可以联系我们。 PHP实战 本篇章节讲解PHP多文件上传类.供大家参考研究.具体如下: 代码如下: ?php /* PHP多文件上传类 修改:Linvo 200
《PHP实例:PHP多文件上传类实例》要点: PHP实战本篇章节讲解PHP多文件上传类.分享给大家供大家参考.具体如下:
代码如下:
<?php
/* PHP多文件上传类 修改:Linvo 2008-2-15 */ class more_file_upload{ ??? const FILE_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; ??? var $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; ??? $this->$totalsize = 0; } ? function show_execute_message($smfileerror,$smfilename,$smfiletype,$smfilesize){ if($smfileerror>0){ ??? switch ($smfileerror){ ??? case 1: $smfilemessage='<strong>文件超过服务器的约定大小!</strong>';break; ??? case 2: $smfilemessage ='<strong>文件超过指定的文件大小!</strong>';break; ??? case 3: $smfilemessage='<strong>文件只上传了部分!</strong>';break; ??? case 4: 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 = '文件上传成功!'; $this->totalsize +=? intval($smfilesize); self::__destruct(); }else{ $smfilemessage = '<strong>文件上传失败!</strong>'; self::__destruct(); } } } ? $$smfilesizeformat = $this->size_BKM($smfilesize); echo '<tr> <td align="left" >'.$smfilename.'</td> <td align="center" >'.$smfiletype.'</td> <td align="center" >'.$smfilesizeformat.'</td> <td align="center" >'.smfilemessage.'</td> </tr>'; } ? function move_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; } } ? function rand_string(){ $string = md5(uniqid(rand().microtime())); return $string; } ? function size_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; } } ?> PHP实战希望本文所述对大家的php程序设计有所赞助. 《PHP实例:PHP多文件上传类实例》是否对您有启发,欢迎查看更多与《PHP实例:PHP多文件上传类实例》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |