php封裝的單檔案上傳類

來源:互聯網
上載者:User
這篇文章主要介紹了php封裝的單檔案(圖片)上傳類,結合完整執行個體形式分析了php圖片檔案上傳操作的相關處理技巧,需要的朋友可以參考下

具體如下:

<?php//封裝php中的單檔案(圖片)上傳類/*//參數1:$file 檔案數組 5個屬性值 name,type,size,tmp,error//參數2:檔案儲存的路徑$path//參數3:檔案上傳允許的類型 $allow數組  $allow=array('image/jpeg','image/jpg','image/png','image/gif')//參數4: 允許檔案上傳的最大大小 $size//傳回值: return $imageName檔案的名字*/header('content-type:text/html;charset=utf-8');class Upload{   //定義一個屬性,專門儲存錯誤資訊    public static $error;   //檔案轉移的方法  public function uploadFile($file,$size,$path){    if(!is_dir($path)){     $this->mkPath($path);    }    $allow=array('image/jpeg','image/jpg','image/png','image/gif');   //首先判斷檔案是否已上傳到臨時目錄    if(!is_array($file)){     Upload::$error='不是一個有效檔案';     return false;    }   //判斷檔案是否上傳到臨時目錄成功   switch($file['error']){    case 1:      Upload::$error='上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值。';      return false;    case 2:      Upload::$error='上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。';      return false;    case 3:      Upload::$error='檔案只有部分被上傳';      return false;    case 4:      Upload::$error='沒有檔案被上傳';       return false;    case 6:      Upload::$error='找不到臨時檔案夾';      return false;    case 7:       Upload::$error='檔案寫入失敗';       return false;   }   //判斷檔案類型是否是圖片    if(!in_array($file['type'],$allow)){     Upload::$error='不是要求的檔案類型';     return false;    }   //判斷檔案的大小是否在允許的範圍內    if($file['size']>$size){     Upload::$error='超出允許最大檔案大小';     return false;    }    //檔案轉移    if(move_uploaded_file($file['tmp_name'],$path.'/'.$this->getName($file))){     return $file['name'];    }else{     return Upload::$error;    }  }  //建立目錄的方法    private function mkPath($path){    mkdir($path);  }  //檔案重新命名    private function getName($file){     return time().$file['name'];    }}

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.