亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

非常經典的PHP文件上傳類分享

2020-03-22 16:55:03
字體:
來源:轉載
供稿:網友
文件上傳是項目開發中比較常見的功能,但文件上傳的過程比較繁瑣,只要是有文件上傳的地方就需要編寫這些復雜的代碼。為了能在每次開發中降低功能的編寫難度,也為了能節省開發時間,通常我們都會將這些反復使用的一段代碼封裝到一個類中。 php +----------------------------------------------------------------------------- * 文件上傳類 +----------------------------------------------------------------------------- * @author Administrator +----------------------------------------------------------------------------- html' target='_blank'>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教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频中文字幕| 亚洲欧美国产一本综合首页| 91九色视频导航| 夜夜嗨av色一区二区不卡| 91sa在线看| 日韩在线观看免费全集电视剧网站| 日韩欧美福利视频| 亚洲图片在区色| 日韩欧美在线免费观看| 精品亚洲一区二区三区四区五区| 成人精品在线视频| 日韩第一页在线| 主播福利视频一区| 亚洲欧美变态国产另类| 美女久久久久久久| 久久香蕉精品香蕉| 久久伊人色综合| 欧美俄罗斯性视频| 成人免费观看网址| 国产高清视频一区三区| 久久综合久久美利坚合众国| 一区二区三区无码高清视频| 久久久久久噜噜噜久久久精品| 日韩欧美第一页| 国产精品久久久久久网站| 久久亚洲国产精品成人av秋霞| 亚洲男人天堂久| 亚洲欧美日本精品| 久久韩剧网电视剧| 欧美激情国产日韩精品一区18| 久久av在线看| 国产精品午夜视频| 欧美午夜丰满在线18影院| 欧美精品亚州精品| 欧美性猛交xxxx乱大交蜜桃| 成人免费高清完整版在线观看| 国产午夜精品视频免费不卡69堂| 亚洲精品中文字幕有码专区| 一区二区国产精品视频| 欧美色道久久88综合亚洲精品| 亚洲欧美一区二区三区在线| 色婷婷av一区二区三区久久| 亚洲视频精品在线| 亚洲黄页视频免费观看| 精品久久久一区| 92国产精品视频| 国产日韩专区在线| 亚洲最大福利视频网站| 亚洲国产97在线精品一区| 久久亚洲精品成人| 亚洲精品电影网| 91亚洲永久免费精品| 欧美极品少妇xxxxx| 日韩欧美成人免费视频| 久久色免费在线视频| 国产亚洲一级高清| 亚洲精品国产拍免费91在线| 亚洲综合最新在线| 亚洲欧美一区二区三区久久| 国产精自产拍久久久久久蜜| 成人激情av在线| 亚洲欧美国产制服动漫| 欧美激情一级精品国产| 亚洲综合色激情五月| 欧美巨乳美女视频| 精品亚洲一区二区三区四区五区| 亚洲级视频在线观看免费1级| 国产精品日日摸夜夜添夜夜av| 国产大片精品免费永久看nba| 在线电影欧美日韩一区二区私密| 亚洲精品v欧美精品v日韩精品| 成人免费视频97| 欧美日韩中文字幕日韩欧美| 欧美亚洲在线视频| 亚州av一区二区| 青青久久av北条麻妃黑人| 国外视频精品毛片| 日韩av在线影视| 日韩av电影免费观看高清| 最好看的2019的中文字幕视频| 国产精品久久久久国产a级| 97色在线播放视频| 在线精品国产成人综合| 国产精品视频网站| 欧美亚洲成人免费| 一区二区三区在线播放欧美| 久久99久久99精品免观看粉嫩| 亚洲区在线播放| 亚洲欧洲一区二区三区久久| 国产精品自产拍高潮在线观看| 最近2019年好看中文字幕视频| 亚洲人午夜精品| 亚洲国产美女久久久久| 久久视频在线看| 日韩成人高清在线| 日韩**中文字幕毛片| 91在线免费观看网站| 亚洲欧美成人精品| 久久99久久久久久久噜噜| 亚洲第一福利网| 九九热这里只有精品免费看| 国产黑人绿帽在线第一区| 日本aⅴ大伊香蕉精品视频| 成人做爽爽免费视频| 国产精品日韩久久久久| 在线不卡国产精品| 欧美性高潮在线| 日韩在线中文字幕| 最新国产成人av网站网址麻豆| 欧美日韩视频在线| 国模精品一区二区三区色天香| 97香蕉超级碰碰久久免费软件| 精品久久久久久国产91| 国产ts人妖一区二区三区| 日韩精品中文字幕视频在线| 成人欧美一区二区三区在线湿哒哒| 国产一区二区三区三区在线观看| 在线精品视频视频中文字幕| 欧美亚洲成人网| 欧美午夜精品久久久久久久| 欧美激情精品久久久久久| 亚洲综合中文字幕68页| 日韩免费视频在线观看| 国产手机视频精品| 国产脚交av在线一区二区| 亚洲国产高清高潮精品美女| 亚洲图片欧美午夜| 高清在线视频日韩欧美| 亚洲视频日韩精品| 欧美日韩国产一区二区三区| 91久久在线视频| 日韩成人网免费视频| 欧美激情一级欧美精品| 亚洲欧美日韩精品| 国产日韩综合一区二区性色av| 国产日韩欧美电影在线观看| 欧美激情精品久久久久久久变态| 亚洲一二三在线| 亚洲欧美在线磁力| 国产精品自拍小视频| 亚洲综合日韩中文字幕v在线| 成人免费网站在线观看| 久久69精品久久久久久国产越南| 在线精品国产成人综合| 91亚洲永久免费精品| 亚洲欧美精品一区| 高清欧美电影在线| 久久久久久久一区二区三区| 91情侣偷在线精品国产| 亚洲女成人图区| 国产精品第一区| 亚洲一区二区中文| 亚洲欧美福利视频| 亚洲欧美日韩中文在线| 欧美大人香蕉在线| 欧美高清视频在线播放| 国产精品第8页| 久久久久99精品久久久久| 韩国精品美女www爽爽爽视频| 欧美激情第三页| 国产精品偷伦视频免费观看国产| 国产成人拍精品视频午夜网站| 日日噜噜噜夜夜爽亚洲精品| 亚洲区免费影片|