时间:2021-07-01 10:21:17 帮助过:3人阅读
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();
- }
- ?>
- >
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>UntitledDocumenttitle>
- head>
- <body>
- <formactionformaction=""method="post"enctype="multipart/form-data"name="form1"id="form1">
- <inputtypeinputtype="file"name="file1"id="file1"/>
- <br/>
- <inputtypeinputtype="file"name="file2"id="file2"/>
- <br/>
- <inputtypeinputtype="file"name="file3"id="file3"/>
- <br/>
- <inputtypeinputtype="file"name="file4"id="file4"/>
- <br/>
- <inputtypeinputtype="submit"name="button"id="button"value="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.bkjia.com/PHPjc/446489.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446489.htmlTechArticle前几天看了一本关于PHP的书,让我感触很深,我先介绍一下PHP的发展史,然后在教大家一个PHP上传多个文件的一个小技巧。让我们先来简单...