茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    PHP實現(xiàn)的多文件上傳類及用法示例
    來源:易賢網(wǎng) 閱讀:1203 次 日期:2016-08-24 15:06:47
    溫馨提示:易賢網(wǎng)小編為您整理了“PHP實現(xiàn)的多文件上傳類及用法示例”,方便廣大網(wǎng)友查閱!

    本文實例講述了PHP實現(xiàn)的多文件上傳類及用法。分享給大家供大家參考,具體如下:

    1、upFiles.css.php 文件

    <?php

    class UploadFiles{

     private $maxsize = '1000000'; //允許上傳文件最大長度

     private $allowtype = array('jpg','png','gif','jpeg');//允許上傳文件類型

     private $israndfile = true;//是否隨機(jī)文件名

     private $filepath;//上傳路徑

     private $originName;//上傳的源文件

     private $tmpfileName;//臨時文件名

     private $newfileName;//新文件名

     private $fileSize;//文件大小

     private $fileType;//文件類型

     private $errorNum = 0;//錯誤號

     private $errorMessg = array();//錯誤消息

     //對成員初始化

     function __construct($options = array()){

     foreach($options as $key=>$val){

      $key = strtolower($key);

      //查看傳進(jìn)來的數(shù)組里下標(biāo)是否與成員屬性相同

      //print_r(array_keys(get_class_vars(get_class($this))));

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

      continue;

      }else{

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

      }

     }

     }

     private function setOption($key,$val){

       $this->$key = $val;

     //echo $this->errorNum."<br>";

     }

     //檢查文件上傳路徑

     private function checkfilePath(){

     //echo $this->filepath;

     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 getError(){

     $str = "上傳文件{$this->originName}出錯---";

     switch($this->errorNum){

      case 4; $str .= "沒有文件被上傳";break;

      case 3; $str .= "文件只被部分上傳";break;

      case 2; $str .= "超過文件表單允許大小";break;

      case 1; $str .= "超過php.ini中允許大小";break;

      case -1; $str .= "未允許的類型";break;

      case -2; $str .= "文件過大,不能超過".$this->maxsize."個字節(jié)";break;

      case -3; $str .= "上傳失敗";break;

      case -4; $str .= "建立文件上傳目錄失敗";break;

      case -5; $str .= "必須指定上傳路徑";break;

      default; $str .= "未知錯誤";

     }

     return $str."<br>";

     }

     //檢查文件類型

     private function checkfileType(){

     //echo $this->fileType;

     if(!in_array(strtolower($this->fileType),$this->allowtype)){

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

      return false;

     }else{

      return true;

     }

     }

     //檢查文件大小

     private function checkfileSize(){

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

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

      return false;

     }else{

      return true;

     }

     }

     //處理隨機(jī)文件名稱

     private function prorandFile(){

     $ch = $this->israndfile;

     if($ch == 'true'){

      return true;

     }else{

      return false;

     }

     }

     //

     private function setFiles($name="",$tmp_name="",$size="",$error=""){

     //檢查上傳路徑

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

      //$this->errorMessg = $this->getError();

      return false;

     }

     //echo $error."<br>";

     if($error){

     $this->setOption('errorNum',$error);

      return false;

     }

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

     $type   = end($arrstr);

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

     $this->setOption('fileSize',$size);

     $this->setOption('fileType',$type);

     $this->setOption('tmpfileName',$tmp_name);

     return true;

     }

     //檢查是否有文件上傳

     function checkFile($formname){

     if(!@$_FILES[$formname]){

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

      return false;

     }else{

      return true;

     }

     }

     //上傳文件

     function uploadeFile($formname){

     if(!$this->checkFile($formname)){

      $this->errorMessg = $this->getError();

      return false;

     }

     $return  = true;

     $name   = @$_FILES[$formname]['name'];

     $tmp_name = @$_FILES[$formname]['tmp_name'];

     $size   = @$_FILES[$formname]['size'];

     $error  = @$_FILES[$formname]['error'];

     //$type   = $_FILES[$formname]['type'];

     if(is_array($name)){

      $errors = array();

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

      if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){

       if(!$this->checkfileSize() || !$this->checkfileType()){

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

       $return = false;

       }

      }else{

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

       $return = false;

      }

      if(!$return) $this->setFiles();

      }

      if($return){

      $newfileN = array();

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

       if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){

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

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

        $return = false;

       }else{

        $newfileN[] = $this->newfileName;

       }

       }

       $this->newfileName = $newfileN;

      }

      }

      //print_r($errors);

      $this->errorMessg = $errors;

      //echo $errors;

      return $return;

     }else{

      if($this->setFiles($name,$tmp_name,$size,$error)){

      $return = true;

      if($error) var_dump($error);

      if($this->checkfileSize() && $this->checkfileType()){

      }else{

       $return = false;

      }

      }else{

      $return = false;

      }

      if(!$return){

      $this->errorMessg = $this->getError();

      }

      return $return;

     }

     }

     //獲取上傳后的文件名

     function getnewFile(){

      return $this->newfileName;

     }

     //把文件拷貝到指定的路徑

     function copyFile(){

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

     if(!$this->errorNum){

      if($this->prorandFile()){

       $this->newfileName = date('Ymdhis').rand(1000,9999).".".$this->fileType;

      }else{

       $this->newfileName = $this->originName;

      }

      if(!move_uploaded_file($this->tmpfileName,$filepath.$this->newfileName)){

      $this->setOption('errorNum',-3);

      return false;

      }else{

      return true;

      }

     }else{

      return false;

     }

     }

     //上傳錯誤后返回的消息

     function gteerror(){

      $err = $this->errorMessg;

     return $err;

     }

     }

    ?>

    2、使用方法

    uploade.php 文件:

    <?php

    //print_r($_FILES['spic']);

    header('Content-Type:text/html;charset=utf-8');

    //if(@$_FILES['spic'])echo "ddddddddd";;

    include('upFiles.css.php');

    $upfile = new UploadFiles(array('filepath'=>'./upload','allowtype'=>array('php','bmp','gif','jpg','png'),'israndfile'=>true,'maxsize'=>'1000000'));

    if($upfile ->uploadeFile('spic')){

     $arrfile = $upfile ->getnewFile();

     foreach($arrfile as $v){

     echo $v,"<br/>";

     }

     echo "上傳成功!";

    }else{

     $err = $upfile ->gteerror();

     if(is_array($err)){

     foreach($err as $v1){

      echo $v1,"<br/>";

     }

     }else{

     echo $err;

     }

     //var_dump($err);

    }

    //var_dump($upfile);

    ?>

    HTML 文件:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>無標(biāo)題文檔</title>

    <script type="text/javascript">

    function Check(){

     //alert('dddd');

     for(i=1; i<9; i++){

     if(document.getElementById('v'+i).value == ''){

      document.getElementById('v'+i).name = 'uu';

     }

     }

    }

    </script>

    </head>

    <body>

    <form name="upfile" action="uploade.php" method="post" enctype="multipart/form-data">

    <input type="file" name="spic[]" id="v1" /><br/>

    <input type="file" name="spic[]" id="v2" /><br/>

    <input type="file" name="spic[]" id="v3" /><br/>

    <input type="file" name="spic[]" id="v4" /><br/>

    <input type="file" name="spic[]" id="v5" /><br/>

    <input type="file" name="spic[]" id="v6" /><br/>

    <input type="file" name="spic[]" id="v7" /><br/>

    <input type="file" name="spic[]" id="v8" /><br/>

    <input type="submit" name="sub" value="提交" onclick="return Check()" />

    <input type="reset" name="res" value="重填" />

    </form>

    </body>

    </html>

    希望本文所述對大家PHP程序設(shè)計有所幫助。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP實現(xiàn)的多文件上傳類及用法示例
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機(jī)號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)