完整代码演示PHP上传多个文件
前几天看了一本关于PHP的书,让我感触很深,我先介绍一下PHP的发展史,然后在教大家一个PHP上传多个文件的一个小技巧。让我们先来简单的介绍一下PHP吧!PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。
PHP上传多个文件代码实现:
- <?php
- require_once(include/upload.class.php);
- if($_POST[button])
- {
- //print_r($_FILES);
- //多个上传
- //$upload=newTTRUpload($_FILES,ANY);//同下
- $upload=newTTRUpload(array($_FILES[file1],$_FILES[file2],$_FILES[file3],$_FILES[file4]),ANY);
- //单个上传
- //$upload=newTTRUpload($_FILES[file1]);
- $upload->upload();
- echo$upload->getUploadFileName();
- }
- ?>
- <!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
- <htmlxmlnshtmlxmlns=http://www.w3.org/1999/xhtml>
- <head>
- <metahttp-equivmetahttp-equiv=Content-Typecontent=text/html;charset=utf-8/>
- <title>UntitledDocument</title>
- </head>
- <body>
- <formactionformaction=method=postenctype=multipart/form-dataname=form1id=form1>
- <inputtypeinputtype=filename=file1id=file1/>
- <br/>
- <inputtypeinputtype=filename=file2id=file2/>
- <br/>
- <inputtypeinputtype=filename=file3id=file3/>
- <br/>
- <inputtypeinputtype=filename=file4id=file4/>
- <br/>
- <inputtypeinputtype=submitname=buttonid=buttonvalue=Submit/>
- </form>
- </body>
- </html>
- <?php
- classTTRUploadextendsError
- {
- constfilesize=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批量上传;
- publicfunction__construct($file,$type=ONE)
- {
- if($type!=ONE&&$type!=ANY)
- {
- echo<scriptlanguagescriptlanguage=javascript>alert(初始化请选择ONE或者ANY)</script>;
- exit;
- }
- $this->uploadtype=$type;
- $this->file=$file;
- }
- privatefunctioncreateFileName()
- {
- return$this->filename=TTR_.time().$this->getRandomN(4);
- }
- privatefunctiongetUploadPath()
- {
- 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);
- returntrue;
- }
- privatefunctiongetFileExt($tempfilename)
- {
- returnend(explode(.,$tempfilename));
- }
- privatefunctiongetExt()
- {
- if(in_array(strtolower($this->getFileExt($tempfilename)),$this->ext))
- {
- returntrue;
- }else{
- returnfalse;
- }
- }
- privatefunctiongetFolder($folder)
- {
- if(!is_dir($folder))
- {
- mkdir($folder);
- }
- return$folder./;
- }
- publicfunctionupload()
- {
- if($this->uploadtype==ONE)
- {
- if($this->getExt($this->file[type]))
- {
- parent::errorExt();
- }elseif($this->file[size]>self::filesize){
- parent::errorFileSize();
- }elseif(!$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();
- }
- }
- }elseif($this->uploadtype==ANY){
- for($i=0;$i<count($this->file);$i++)
- {
- if($this->getExt($this->file[$i][type]))
- {
- parent::errorExt();
- }elseif($this->file[$i][size]>self::filesize){
- parent::errorFileSize();
- }elseif(!$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();
- }
- }
- publicfunctiongetUploadFileName()
- {
- return$this->uploadfilename;
- }
- publicfunctionsetUploadPath($path)
- {
- $this->uploadpath=$path;
- }
- privatefunctiongetRandomN($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++)
- {
- $randrandn=rand(0,9-$i);
- $return.=$ary_num[$randn];
- $ary_num[$randn]=$ary_num[9-$i];
- }
- return$return;
- }
- publicfunction__destruct()
- {
- $this->uploadfilename=null;
- $this->uploadtype=null;
- $this->file=null;
- $this->savepath=null;
- }
- }
- classError
- {
- publicstaticfunctionerrorFileSize()
- {
- echo超出最大上传限制;
- }
- publicstaticfunctionerrorExt()
- {
- echo此类文件不允许上传;
- }
- publicstaticfunctionerrorUploadPath()
- {
- echo上传路径不正确;
- }
- publicstaticfunctionerrorMoveUpload()
- {
- echo上传失败;
- }
- publicstaticfunctionokMoved()
- {
- echo上传成功!;
- }
- publicstaticfunctionokArrayMoved()
- {
- echo上传成功!;
- }
教程网址:http://www.phprm.com/frame/php1003482.html
欢迎收藏∩_∩但请保留本文链接。
- 上一篇: 讲述PHP递归算法
- 下一篇: 轻松编写PHP静态页面