亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

非常經典的PHP文件上傳類分享
來源:易賢網 閱讀:1304 次 日期:2016-08-22 15:21:44
溫馨提示:易賢網小編為您整理了“非常經典的PHP文件上傳類分享”,方便廣大網友查閱!

文件上傳是項目開發中比較常見的功能,但文件上傳的過程比較繁瑣,只要是有文件上傳的地方就需要編寫這些復雜的代碼。為了能在每次開發中降低功能的編寫難度,也為了能節省開發時間,通常我們都會將這些反復使用的一段代碼封裝到一個類中。

<?php 

/** 

 +----------------------------------------------------------------------------- 

 * 文件上傳類 

 +----------------------------------------------------------------------------- 

 * @author Administrator 

 +----------------------------------------------------------------------------- 

 */

 class FileUpload{ 

  private $filepath;  //保存路徑 

  private $allowtype=array('gif','jpg','jpeg','png','txt'); 

  private $maxsize=1000000;  //最大允許上傳大小 

  private $israndname=true; //是否隨機 

  private $orginame; //原始文件名 

  private $tmpname;  //臨時文件名 

  private $newname;  //新文件名 

  private $filetype; //文件類型  

  private $filesize; //文件大小 

  private $errornum=''; //錯誤號 

  private $errormsg; //錯誤信息 

/** 

 +------------------------------------------------------------------------------ 

 *構造函數 

 +------------------------------------------------------------------------------ 

 * @param string $savepath  保存路徑 

 * @param string $allowtype 允許類型 

 * @param string $maxsize  允許大小 

 * 

 +------------------------------------------------------------------------------ 

 */   

  function __construct($option=array()){ 

     foreach ($option as $key=>$value){ 

         

      if (!in_array($key,get_class_vars(get_class($this)))){ 

        continue; 

       } 

      $this->setOption($key, $value);  

     } 

  } 

  function uploadfile($field) { 

     $return=true; 

    if (!$this->CheckPath()) { 

      $this->errormsg=$this->geterrorNum(); 

      return false; 

    } 

    $name=$_FILES[$field]['name']; 

    $tmpname=$_FILES[$field]['tmp_name']; 

    $filesize=$_FILES[$field]['size']; 

    $error=$_FILES[$field]['error'];  

     if (is_array($name)) { 

      $errors=array(); 

       for ($i=0;$i<count($name);$i++){ 

        if ($this->getFile($name[$i],$tmpname[$i],$filesize[$i],$errors[$i])) { 

          if (!$this->CheckSize() && !$this->CheckType()) { 

            $errors=$this->getErrorNum(); 

            return false; 

            }                                 

        }else{ 

            $errors=$this->getErrorNum(); 

            return false; 

        } 

        if (!$return) { 

          $this->getFile(); 

        } 

       } 

       if ($return) { 

        $fileNames=array(); 

        for ($i=0;$i<count($name);$i++){ 

          if ($this->getFile($name[$i], $tmpname[$i], $filesize[$i], $filesize[$i])) { 

            $this->SetFileName(); 

            if (!$this->MoveFile()) { 

              $errors[]=$this->getErrorNum(); 

              $return=false; 

            }else{ 

              $fileNames[]=$this->getNewName(); 

            } 

          }         

        } 

        $this->newname=$fileNames; 

       } 

        $this->errormsg=$errors; 

        return $return; 

     }else{  

      if($this->getFile($name,$tmpname,filesize,$error)){ 

        if(!$this->CheckSize()){ 

          return false; 

        } 

        if(!$this->CheckType()){ 

          return false; 

        } 

         $this->SetFileName(); 

        if ($this->MoveFile()) { 

            return true; 

        }  

      }else{ 

      return false; 

      } 

      if (!$return) { 

      $this->setOption('ErrorNum', 0); 

      $this->errormsg=$this->geterrorNum(); 

      } 

     return $return;  

   } 

  } 

  /** 

   +------------------------------------------------------------------------ 

   *設置類屬性值函數 

   +------------------------------------------------------------------------ 

   * @param mix $key 

   * @param mix $value 

   */

  private function setOption($key,$value){ 

    $key=strtolower($key); 

    $this->$key=$value; 

  } 

  /** 

   +--------------------------------------------------------------------------- 

   * 獲取文件變量參數函數 

   +--------------------------------------------------------------------------- 

   * @param string $name 

   * @param string $tmp_name 

   * @param number $size 

   * @param number $error 

   */

  private function getFile($name,$tmpname,$filetype,$filesize,$error=0){  

    $this->setOption('TmpName', $tmpname); 

    $this->setOption('OrgiName', $name); 

    $arrstr=explode('.', $name); 

    $this->setOption('FileType', $arrstr[count($arrstr)-1]);      

    $this->setOption('FileSize', $filesize); 

    return true; 

  } 

  /** 

   +------------------------------------------------------------------------- 

   * 檢查上傳路徑函數 

   +------------------------------------------------------------------------- 

   * @return boolean 

   */

  private function CheckPath(){ 

    if(empty($this->filepath)){ 

      $this->setOption('ErrorNum', -5); 

      return false; 

    } 

    if (!file_exists($this->filepath)||!is_writable($this->filepath)) { 

       if (!@mkdir($this->filepath,0755)) { 

         $this->setOption('ErrorNum',-4); 

         return false; 

       } 

    } 

    return true; 

  } 

  private function Is_Http_Post(){ 

    if (!is_uploaded_file($this->tmpname)) { 

      $this->setOption('ErrorNum',-6);  

      return false; 

    }else{ 

      return true; 

    } 

  } 

  /** 

   +-------------------------------------------------------------------- 

   *檢查文件尺寸函數 

   +-------------------------------------------------------------------- 

   * @return boolean 

   */

  private function CheckSize(){ 

    if ($this->filesize>$this->maxsize) { 

      $this->setOption('ErrorNum', -2); 

      return false; 

    }else{ 

      return true; 

    } 

  } 

  /** 

   +--------------------------------------------------------------- 

   * 檢查文件類型函數 

   +--------------------------------------------------------------- 

   * @return boolean 

   */

  private function CheckType(){ 

    if (in_array($this->filetype, $this->allowtype)) { 

      return true; 

    }else{ 

      $this->setOption('ErrorNum', -1); 

      return false; 

    } 

  } 

  private function SetFileName(){ 

    if ($this->israndname) { 

      $this->setOption('NewName', $this->RandName()); 

    }else{ 

      $this->setOption('NewName',$this->orginame); 

    }  

  } 

  /** 

   +----------------------------------------------------------------- 

   * 獲取新文件名 

   +------------------------------------------------------------------ 

   */

  public function getNewName() { 

    return $this->newname; 

  } 

  private function RandName(){ 

    $rule=date("YmdHis").rand(0, 999); 

    return $rule.'.'.$this->filetype; 

  } 

  private function MoveFile(){ 

    if ($this->errornum) { 

      $filepath=rtrim($this->filaepath,'/').'/'; 

      $filepath.=$this->newname; 

      if (@move_uploaded_file($this->tmpname,$filepath)) { 

        return true; 

       }else{ 

        $this->errormsg=$this->setOption('ErrorNum',-3 ); 

       } 

    }else{ 

      return false; 

    } 

  } 

  /** 

   +---------------------------------------------------------------- 

   * 錯誤信息函數 

   +---------------------------------------------------------------- 

   * @return string 

   */

   function getErrorNum() { 

    $erstr="上傳文件<font color='red'>{$this->orginame}</font>出錯"; 

    switch ($this->errornum) { 

      case 4: 

       $erstr.="沒有文件被上傳"; 

        break; 

      case 3: 

       $erstr.="文件只被部分上傳"; 

        break; 

      case 2: 

       $erstr.="上傳文件超過了HTML表單MAX_FILE_SIZE指定的值"; 

        break; 

      case 1: 

       $erstr.="上傳文件超過了php.ini配置文件中upload_max_filesize的值"; 

        break; 

      case 0: 

       $erstr="上傳{$this->orginame}成功"; 

        break;        

      case -1: 

       $erstr="未允許的類型"; 

        break; 

      case -2: 

       $erstr.="文件過大,不能超過{$this->maxsize}個字節";  

        break; 

      case -3: 

       $erstr.="上傳失敗"; 

        break; 

      case -4: 

       $erstr="創建上傳目錄失敗,請重新指定上傳目錄"; 

        break; 

      case -5: 

       $erstr="未指定上傳路徑"; 

        break; 

      case -6: 

       $erstr="非法操作"; 

        break;                    

      default: 

       $erstr.="未知錯誤"; 

    } 

    return $erstr; 

  } 

 } 

?>

以上就是本文的全部內容,希望對大家學習php程序設計有所幫助。

更多信息請查看網絡編程
易賢網手機網站地址:非常經典的PHP文件上傳類分享
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
亚洲性色视频| 久久在线精品| 国产欧美日本| 亚洲午夜精品久久久久久浪潮| 久久久久国产精品一区二区 | 免费久久99精品国产自在现线| 亚洲激情婷婷| 亚洲国产精品综合| 日韩图片一区| 国产亚洲网站| 免费看黄裸体一级大秀欧美| 国产精品综合| 亚洲一区二区在线看| 99精品国产在热久久婷婷| 亚洲精品黄色| 中文一区在线| 久久国产手机看片| 午夜欧美精品| 亚洲国产日韩在线| 一本一本久久a久久精品综合妖精| 中文精品一区二区三区| 噜噜噜噜噜久久久久久91| 久久综合中文色婷婷| 欧美精品国产一区| 亚洲国产专区校园欧美| 99国内精品久久久久久久软件| 宅男噜噜噜66一区二区| 美女视频一区免费观看| 久久综合伊人77777麻豆| 欧美激情视频一区二区三区免费| 欧美精品一线| 99热在线精品观看| 久久九九电影| 尤物网精品视频| 午夜一级在线看亚洲| 欧美黄污视频| 亚洲影音一区| 亚洲一本视频| 米奇777在线欧美播放| 在线日韩欧美| 欧美a级一区| 一本色道88久久加勒比精品| 欧美在线影院| 国产日产高清欧美一区二区三区| 久久一日本道色综合久久| 国内精品99| 久久精品综合| 亚洲视频大全| 在线欧美视频| 欧美日韩日本国产亚洲在线| 亚洲一区二区在线看| 狠狠色综合网| 欧美日韩无遮挡| 免费在线亚洲欧美| 亚洲色图自拍| 亚洲激情一区| 欧美天堂亚洲电影院在线观看| 一区二区三区导航| 亚洲黄色一区二区三区| 国产主播一区| 欧美日韩一区二| 久久综合福利| 久久久综合网| 久久福利一区| 国产偷自视频区视频一区二区| 亚洲午夜电影| 葵司免费一区二区三区四区五区| 国产日韩欧美一区二区三区在线观看 | 欧美日韩国产综合视频在线| 国产精品美女久久久| 精品二区久久| 在线日韩欧美| 激情久久久久久久| 红桃视频国产精品| 激情成人综合| 永久域名在线精品| 在线观看成人av电影| 久久精品综合一区| 午夜欧美理论片| 国产在线精品二区| 影音欧美亚洲| 夜夜爽www精品| 国产一区二区中文| 亚洲一级高清| 国产日产高清欧美一区二区三区| 一区二区三区视频在线播放| 国产精品三上| 亚洲黄色视屏| 国产欧美日韩综合精品二区| 国产精品一卡| 欧美1级日本1级| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲综合国产| 久久深夜福利| 韩日视频一区| 国产精品v欧美精品v日本精品动漫 | 国产日韩1区| 香蕉成人久久| 妖精视频成人观看www| 久久国产精品久久精品国产| 久久成人一区| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲第一在线| 日韩视频在线一区二区三区| 久久精品网址| 最新国产乱人伦偷精品免费网站| 在线视频精品一区| 欧美在线1区| 亚洲精选在线| 欧美激情成人在线| 国产精品伊人日日| 欧美另类女人| 国产偷国产偷亚洲高清97cao| 午夜精品av| 国产一区二区三区黄| 欧美淫片网站| 国产精品日韩欧美一区二区| 欧美三级特黄| 久久精品动漫| 国产精品成人一区二区网站软件| 国产精品推荐精品| 欧美中文字幕| 99在线|亚洲一区二区| 欧美日韩三区| 美女日韩在线中文字幕| 国产欧美91| 精品成人一区| 国产一区再线| 欧美一区二区三区在线免费观看| 国产精品乱子乱xxxx| 在线观看成人av| 欧美日韩在线一二三| 亚洲欧洲午夜| 亚洲视频狠狠| 亚洲在线国产日韩欧美| 国产欧美日韩一区| 欧美婷婷久久| 欧美精品日韩| 欧美国产精品| 午夜精品电影| 欧美特黄a级高清免费大片a级| 久久久久久自在自线| 中文在线不卡| 国产伦精品一区二区三区视频黑人| 午夜久久一区| 欧美日韩网站| 国内成+人亚洲| 国产真实久久| 亚洲在线网站| 国产一区二区三区高清| 亚洲黄色大片| 正在播放亚洲| 国产精品久久| 久久蜜桃精品| 99在线精品视频在线观看| 欧美不卡高清| 国产精品久久久亚洲一区| 欧美精品首页| 久久精品日产第一区二区三区| 国内在线观看一区二区三区| 久久人人九九| 亚洲一区二区三区四区中文| 亚洲成色精品| 国产综合激情| 欧美不卡在线| 久久看片网站| 亚洲欧美日韩综合国产aⅴ| 欧美精品在线一区| 亚洲欧美日韩一区在线观看| 在线成人www免费观看视频| 欧美一区不卡| 免费久久99精品国产自| 9色国产精品| 亚洲福利久久| 在线观看不卡| 亚洲图片在线| 欧美视频福利| 国内视频精品| 亚洲天堂偷拍| 黄色成人在线网址| 国产精品swag| 黄色亚洲免费| 激情一区二区三区| 伊人婷婷久久| 红桃视频亚洲| 1024日韩| 国产欧美三级| 国产一级一区二区| 亚洲在线视频| 另类国产ts人妖高潮视频| 国产亚洲在线| 久久激情网站| 欧美三级特黄| 国内精品嫩模av私拍在线观看| 国产精品成人观看视频免费| 精品电影一区| 亚洲精品偷拍| 国产女主播一区二区| 亚洲欧美日本日韩| 久久精品日产第一区二区 | 国内精品久久国产| 欧美精品成人一区二区在线观看| 久久中文在线| 亚洲性色视频| 国产精品日韩欧美一区| 久久av免费一区| 午夜视频久久久| 国产综合欧美在线看| 亚洲国产欧美日韩| 国产精品免费区二区三区观看| 校园激情久久| 国内视频精品| 国产区欧美区日韩区| 乱码第一页成人| 狠狠色综合色区| 亚洲一区二区三区色| 欧美a级片网站| 日韩亚洲视频| 欧美影视一区| 99在线观看免费视频精品观看| 另类亚洲自拍| 亚洲二区精品| 欧美在线三区| 国产日韩欧美亚洲一区| 亚洲欧美一区二区原创| 99精品99| 欧美三级午夜理伦三级中文幕| 亚洲作爱视频| 黄色综合网站| 欧美国产先锋| 久久成人亚洲| 在线亚洲一区| 亚洲激情午夜| 国内精品久久久久久久果冻传媒| 午夜亚洲精品| 亚洲视频二区| 亚洲激情网站| 欧美三区美女| 欧美国产高清| 久久久水蜜桃| 亚洲一区黄色| 国产精品久久波多野结衣| 激情欧美一区二区三区| 亚洲欧美一级二级三级| 久久大逼视频| 欧美一级一区| 亚洲欧美日本视频在线观看| 99精品免费视频| 亚洲国产国产亚洲一二三| 欧美日韩系列| 午夜久久tv| 欧美福利电影在线观看| 久久久久久久高潮| 老司机一区二区三区| 免费在线一区二区| 亚洲资源av| 国产精品毛片| 国产精品日韩| 亚洲在线观看| 欧美在线综合| 午夜一区二区三视频在线观看| 亚洲人体大胆视频| 亚洲欧洲一区| 国产欧美在线| 午夜在线一区| 性欧美xxxx大乳国产app| 国产精品一区在线播放| 亚洲综合欧美| 久久久亚洲人| 欧美激情亚洲| 欧美精选一区| 韩日午夜在线资源一区二区| 亚洲高清久久| 在线视频一区观看| 亚洲一区二区在线看| 蜜桃久久精品乱码一区二区| 久久免费国产| 伊人精品在线| 亚洲一区二区三区色| 乱人伦精品视频在线观看| 欧美一区不卡| 伊人久久大香线蕉综合热线 | 欧美日韩国产综合网| 国产精品v欧美精品∨日韩| 激情综合激情| 亚洲综合二区| 欧美日本亚洲| 亚洲乱码视频| 久久午夜精品| 影音先锋中文字幕一区| 一区二区三区四区五区精品视频| 国产精品夜夜夜一区二区三区尤| 美日韩免费视频| 亚洲视频中文| 国产女主播一区二区| 欧美日韩国产不卡在线看| 亚洲精选在线| 久久尤物视频| 99精品国产99久久久久久福利| 麻豆91精品| 亚洲国产欧美日韩| 久久久久网站| 一本色道久久99精品综合| 欧美在线黄色| 国产欧美日韩一区二区三区| 欧美日本一区| 久久动漫亚洲| 一区二区动漫| 国产精品hd| 久久综合伊人77777麻豆| 在线亚洲欧美| 亚洲第一毛片| 欧美激情视频一区二区三区在线播放 | 欧美91福利在线观看| 91久久黄色| 欧美精品一区在线发布| 国产伦精品一区二区三区高清版| 好看的av在线不卡观看| 久久精品主播| 亚洲一区bb| 99riav国产精品| 一区在线免费| 国色天香一区二区| 欧美激情综合| 久久婷婷国产综合尤物精品| 国产午夜精品一区二区三区欧美 | 亚洲精品1区2区| 欧美日韩国内| 欧美/亚洲一区| 久久精品综合| 亚洲欧美视频一区二区三区| 日韩图片一区| 亚洲区一区二| 亚洲激情影院| 99av国产精品欲麻豆| 亚洲国产精品久久久久婷婷老年 | 欧美特黄视频| 欧美日本一区二区视频在线观看| 麻豆成人精品| 久久午夜电影| 欧美a级片一区| 欧美福利视频| 国产精品大全| 在线高清一区| av成人黄色| 亚洲尤物在线| 久久久久久久高潮| 欧美在线高清| 欧美午夜不卡| 激情一区二区三区| 一本久久知道综合久久| 国产精品永久| 久热re这里精品视频在线6| 欧美精品aa| 亚洲国产国产亚洲一二三| 亚洲人成在线影院| 国产精品日韩欧美一区二区三区| 另类亚洲自拍| 国产精品国产精品| 在线高清一区| 国产伦精品一区二区三区四区免费| 免费欧美在线| 国产精品啊啊啊| 99热精品在线观看| 玖玖精品视频| 在线日韩av永久免费观看| 国产亚洲激情| 欧美午夜精品| 国产视频久久| 欧美1区2区视频| 亚洲人人精品| 欧美一区2区三区4区公司二百| 在线观看亚洲| 久久综合给合久久狠狠色| 亚洲高清在线播放| 久久精品观看| 亚洲高清不卡| 欧美精品三区| 亚洲自啪免费| 亚洲国产一区在线| 欧美国产免费| 亚洲色图自拍| 伊人激情综合| 欧美不卡视频| 国产亚洲激情| 黄色成人91| 快she精品国产999| 日韩午夜黄色| 影音先锋久久久| 老司机免费视频久久| 国产亚洲毛片在线| 在线欧美亚洲| 欧美成人国产| 亚洲欧美日韩国产一区| 最新亚洲一区| 国产精品黄色| 欧美精品在线一区| 欧美伊人影院| 久久综合久久久| 亚洲在线日韩|