php 支持多文件上传
<?php /** *TTR上传类 *2007-09-22 *QQ:252319874 **/ class TTRUpload extends Error { const filesize=81200000; private $uploadpath="uploadfile/"; private $savepath=null; private $uploadfilename=null; //单个文件为文件名,批量文件为xxxx|xxxx格式,请注意 private $ext=array("jpg","gif","png"); private $error=null; private $file=null; private $uploadtype=null; private $filename=null; //构造函数,$type:ONE单个上传 ANY批量上传; public function __construct($file,$type="ONE") { if($type!="ONE" && $type!="ANY") { echo "<script language='javascript'>alert('初始化请选择ONE或者ANY')</script>"; exit; } $this->uploadtype=$type; $this->file=$file; } private function createFileName() { return $this->filename="TTR_".time().$this->getRandomN(4); } private function getUploadPath() { if(substr($this->uploadpath,-1,1)!="/") { $this->savepath=$this->uploadpath."/".date("Ym"); }else{ $this->savepath=$this->uploadpath.date("Ym"); } $this->savepath=$this->getFolder($this->savepath); return true; } private function getFileExt($tempfilename) { return end(explode(".",$tempfilename)); } private function getExt() { if(in_array(strtolower($this->getFileExt($tempfilename)),$this->ext)) { return true; }else{ return false; } } private function getFolder($folder) { if(!is_dir($folder)) { mkdir($folder); } return $folder."/"; } public function upload() { if($this->uploadtype=="ONE") { if($this->getExt($this->file["type"])) { parent::errorExt(); }else if($this->file["size"]>self::filesize){ parent::errorFileSize(); }else if(!$this->getUploadPath()){ parent::errorUploadPath(); }else{ $filenametemp=$this->createFileName(); $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file["name"]); if(move_uploaded_file($this->file["tmp_name"],$filename)) { $this->uploadfilename=$filenametemp; parent::okMoved(); }else{ parent::errorMoveUpload(); } } }else if($this->uploadtype=="ANY"){ for($i=0;$i<count($this->file);$i++) { if($this->getExt($this->file[$i]["type"])) { parent::errorExt(); }else if($this->file[$i]["size"]>self::filesize){ parent::errorFileSize(); }else if(!$this->getUploadPath()){ parent::errorUploadPath(); }else{ $filenametemp=$this->createFileName(); $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file[$i]["name"]); if(move_uploaded_file($this->file[$i]["tmp_name"],$filename)) { $str.=$filenametemp."|"; }else{ parent::errorMoveUpload(); } } } $this->uploadfilename=substr($str,0,strlen($str)-1); parent::okMoved(); } } public function getUploadFileName() { return $this->uploadfilename; } public function setUploadPath($path) { $this->uploadpath=$path; } private function getRandomN($n) { if ($n < 1 || $n>10) return ""; $ary_num= array(0,1,2,3,4,5,6,7,8,9); $return =""; for ($i=0;$i<$n;$i++) { $randn = rand(0,9-$i); $return .= $ary_num[$randn]; $ary_num[$randn] = $ary_num[9-$i]; } return $return; } public function __destruct() { $this->uploadfilename=null; $this->uploadtype=null; $this->file=null; $this->savepath=null; } } class Error { public static function errorFileSize() { echo "超出最大上传限制"; } public static function errorExt() { echo "此类文件不允许上传"; } public static function errorUploadPath() { echo "上传路径不正确"; } public static function errorMoveUpload() { echo "上传失败"; } public static function okMoved() { echo "上传成功!"; } public static function okArrayMoved() { echo "上传成功!"; } }
实例应用:
<?php require_once("include/upload.class.php"); if($_POST["button"]) { //print_r($_FILES); //多个上传 $upload = new TTRUpload(array($_FILES["file1"],$_FILES["file2"],$_FILES["file3"],$_FILES["file4"]),"ANY"); //单个上传 //$upload = new TTRUpload($_FILES["file1"]); $upload->upload(); echo $upload->getUploadFileName(); } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> <input type="file" name="file1" id="file1" /> <br /> <input type="file" name="file2" id="file2" /> <br /> <input type="file" name="file3" id="file3" /> <br /> <input type="file" name="file4" id="file4" /> <br /> <input type="submit" name="button" id="button" value="Submit" /> </form> </body> </html>
本文地址:http://www.phprm.com/code/b22b8ad9fe50194dd88a237b957a44ff.html
转载随意,但请附上文章地址:-)