Heim > php教程 > php手册 > Hauptteil

php 多文件上传经典代码

WBOY
Freigeben: 2016-06-13 09:58:03
Original
989 Leute haben es durchsucht


require_once("include/upload.class.php");
if($_POST["button"])
{
        //print_r($_FILES);
        //多个上传
        //$upload = new TTRUpload($_FILES,"ANY");//同下

        $upload = new TTRUpload(array($_FILES["file1"],$_FILES["file2"],$_FILES["file3"],$_FILES["file4"]),"ANY");

        //单个上传
        //$upload = new TTRUpload($_FILES["file1"]);
        $upload->upload();
        echo $upload->getUploadFileName();
}
?>




Untitled Document



 
 

 
 

 
 

 
 

 


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 "";
                        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;$ifile);$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 10)  return "";
       
                $ary_num= array(0,1,2,3,4,5,6,7,8,9);
                $return ="";
                for ($i=0;$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 "上传成功!";
        }
}

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage