中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

非常經典的PHP文件上傳類分享
來源:易賢網 閱讀:1226 次 日期: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文件上傳類分享
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
美脚丝袜一区二区三区在线观看| 免费中文字幕日韩欧美| 一区二区三区波多野结衣在线观看| 亚洲综合99| 欧美日韩成人一区| 亚洲人成网站777色婷婷| 久久久国产一区二区三区| 国产精品视频网| 亚洲一区国产| 国产精品日韩专区| 亚洲欧美国产va在线影院| 国产精品高潮在线| 亚洲自拍偷拍福利| 狠狠色2019综合网| 午夜精品理论片| 国产区日韩欧美| 欧美一区国产一区| 国产一区香蕉久久| 久久久久久九九九九| 激情小说另类小说亚洲欧美| 久久综合中文字幕| 亚洲高清中文字幕| 欧美精品一区二区三区很污很色的| 亚洲精品国产视频| 欧美日韩在线视频一区| 一区二区三区国产盗摄| 国产精品久久久久久亚洲调教| 欧美日韩精品一区二区三区四区| 亚洲看片免费| 欧美日韩ab| 亚洲午夜伦理| 国产午夜精品久久| 另类亚洲自拍| 亚洲经典三级| 国产精品毛片a∨一区二区三区|国 | 久久亚洲精品欧美| 亚洲国产精品一区二区www在线 | 国产精品综合av一区二区国产馆| 亚洲欧美国产毛片在线| 狠狠色伊人亚洲综合成人| 欧美激情一区二区三区在线 | 国产欧美一区二区精品仙草咪| 亚洲欧美日韩精品一区二区 | 国产精品a级| 欧美在线综合视频| 亚洲国产小视频在线观看| 欧美日韩一区视频| 欧美一区在线看| 亚洲欧洲日产国产网站| 欧美视频三区在线播放| 性久久久久久久久久久久| 亚洲高清视频的网址| 国产精品成人免费视频| 欧美一区二视频在线免费观看| 亚洲国产欧美一区二区三区久久 | 麻豆av福利av久久av| 9久re热视频在线精品| 国产精品一区二区三区乱码| 久久综合伊人77777麻豆| 亚洲视频在线看| 影音先锋成人资源站| 国产精品xnxxcom| 久久综合999| 亚洲欧美在线免费观看| 亚洲福利视频三区| 国产精品一区二区三区四区五区| 免费观看在线综合| 欧美一区二区私人影院日本 | 欧美成人乱码一区二区三区| 午夜欧美不卡精品aaaaa| 亚洲精品乱码视频| 红桃av永久久久| 国产精品久久网站| 欧美日韩国产色视频| 久久综合亚州| 欧美在线日韩| 亚洲影院污污.| 日韩视频在线观看一区二区| 国色天香一区二区| 国产精品区一区二区三| 欧美理论在线| 欧美成人久久| 麻豆亚洲精品| 久久久久久久一区二区三区| 亚洲欧美一区二区三区久久| 日韩网站在线观看| 亚洲三级视频| 亚洲国产精品一区二区第一页| 国模精品一区二区三区| 国产欧美一区二区三区久久人妖| 国产精品成人aaaaa网站| 欧美日韩精品在线播放| 欧美国产亚洲精品久久久8v| 老司机成人网| 蜜桃久久av| 欧美成人精品在线| 欧美v国产在线一区二区三区| 久久只精品国产| 久久久久一区二区三区| 久久久.com| 久久久免费av| 久久免费黄色| 麻豆精品在线观看| 欧美fxxxxxx另类| 免费成人黄色| 欧美国产视频一区二区| 欧美激情视频给我| 欧美日韩国产a| 欧美日韩亚洲一区二区| 欧美午夜a级限制福利片| 欧美性开放视频| 国产精品日韩精品欧美精品| 国产精品免费视频xxxx| 国产伦精品一区二区三区高清| 国产日韩一区二区三区在线| 国产亚洲一区二区三区在线观看| 狠狠色丁香婷婷综合| 亚洲国产你懂的| 一本色道88久久加勒比精品| 亚洲色无码播放| 欧美一级欧美一级在线播放| 久久婷婷综合激情| 欧美大片91| 国产精品成人在线| 国产情人综合久久777777| 在线观看欧美日韩| 日韩一区二区高清| 亚洲男人影院| 久久婷婷国产综合国色天香 | 亚洲美女中文字幕| 国产精品99久久久久久人| 亚洲主播在线| 久久天堂成人| 欧美日韩国产在线一区| 国产乱肥老妇国产一区二| 激情欧美一区| 99精品国产一区二区青青牛奶| 午夜精品亚洲一区二区三区嫩草| 久久成人精品无人区| 欧美成年人在线观看| 国产精品ⅴa在线观看h| 国产亚洲精品7777| 亚洲精品日韩综合观看成人91| 亚洲在线免费| 男女精品网站| 国产精品区二区三区日本| 在线不卡视频| 亚洲专区一区| 蜜臀av国产精品久久久久| 国产精品美女一区二区在线观看| 精品动漫3d一区二区三区免费版 | 欧美激情欧美激情在线五月| 国产精品久久久99| 亚洲成色最大综合在线| 亚洲一区二区三区午夜| 久久婷婷国产综合精品青草| 欧美色欧美亚洲另类七区| 狠狠综合久久| 亚洲欧美日韩精品久久亚洲区| 欧美刺激性大交免费视频| 国产美女搞久久| 99精品热视频| 免费国产一区二区| 国产亚洲欧美一级| 一区二区精品在线| 久久综合久久久| 国产日韩欧美二区| 在线中文字幕一区| 模特精品在线| 国产亚洲亚洲| 亚洲愉拍自拍另类高清精品| 欧美精品色网| 激情欧美日韩| 欧美在线观看一区二区| 欧美日韩一区二区三区视频| 亚洲成色精品| 久久精品免费电影| 国产精品一区二区黑丝| 在线亚洲精品| 欧美区二区三区| 亚洲欧洲在线一区| 久久亚洲捆绑美女| 国内久久精品视频| 性欧美8khd高清极品| 国产精品久久久久久久9999| 日韩午夜电影av| 欧美激情综合在线| 亚洲福利视频一区| 老色鬼久久亚洲一区二区| 国内精品免费午夜毛片| 欧美专区在线观看一区| 国产区日韩欧美| 欧美一区二区免费视频| 国产精品精品视频| 亚洲一区二区成人| 国产精品国产一区二区| 亚洲一区激情| 国产欧美一区二区在线观看| 午夜视频在线观看一区二区| 国产精品丝袜xxxxxxx|