圖片上傳封裝類

<?php
class Upload{
    public $allowType=array('jpg','jpeg','png','rar');
    public $maxSize=1;//最大的文件大小
    public $error='';//錯誤信息
    /**
    *
    *分析$_FILES中$name域的信息凄鼻,如$_FILES['pic']
    *@param string $name 表單中file表單項的name值
    *@return array 上傳文件信息陨仅,包含(tmp_name,name,type,error,size)
    *
    */
    
    public function getInfo($name){
        return $_FILES[$name];
    }
    /*
    *
    *檢測文件是否符合類型
    *@param $exit,文件的后綴名(不含.)
    *@return 失敗返回false夕凝,成功返回true
    */
    public function checkType($exit){
        return in_array($exit,$this->allowType);
    }
    /**
    *
    *檢測文件大小
    *@param int $size上傳圖片的文件大小
    *@return bool 
    *
    */
    public function checkSize($size){
        return $size<$this->maxSize*1024*1024;
    }
    /**
    *
    *失敗輸出的信息
    *@return string 錯誤信息
    *
    */
    public function getError(){
        return $this->error;
    }
    /**
    *
    *創(chuàng)建目錄
    *@param 目錄的絕對路徑,到upload之前乎赴,默認(rèn)為當(dāng)前目錄
    *返回路徑
    */
    public function createDir($root){
        $dir=$root."upload/".date('Y/md/');
        if(is_dir($dir) || mkdir($dir,0777,true)){
            return $dir;
        }else{
            return false;
        }
    }
    /*
    *
    *獲取隨機字符串努酸,用于拼接圖片名
    *@param string $length字符串長度
    *@return string $str
    */
    public function randStr($length=6){
        $str=str_shuffle("qwertyuioplkjhgfdsazxcvbnmQWYRIEOKFCNMVZALP1234567890");
        $str=time().substr($str,0,$length);
        return $str;
    }
    /**
    *
    *執(zhí)行文件齿风,上傳圖片
    *@param string $name 資源名
    *@param string $root 絕對路徑,想要輸出的目錄
    *@return array $data 圖片路徑和圖片名
    */
    public function up($name,$root=''){
        //檢測是否有文件上傳您朽,或者參數(shù)是否正確
        if(!isset($_FILES[$name])){
            $this->error='請上傳文件狂丝!';
            echo $this->getError();exit;
        }
        //檢測文件類型是否符合
        $info=$this->getInfo($name);
        $type=ltrim(strrchr($info['name'],'.'),'.');
        if(!$this->checkType($type)){
            $this->error='文件類型不符合!';
            echo $this->getError();exit;
        }
        if(!$this->checkSize($info['size'])){
            $this->error='文件大于'.$this->maxSize.'M';
            echo $this->getError();exit;
        }
        //上傳圖片
        //創(chuàng)建目錄
        $dir=$this->createDir($root);
        //拼接參數(shù)
        $filename=$this->randStr().'.'.$type;
        if(move_uploaded_file($info['tmp_name'],$dir.'/'.$filename)){
            //返回圖片名和圖片路徑
            $data['name']=$filename;
            $data['path']=$dir;
            return $data;
        }
    }   
}
//var_dump($_FILES);
$a= new Upload();
$a->up('pic1');
?>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哗总,一起剝皮案震驚了整個濱河市几颜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讯屈,老刑警劉巖蛋哭,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涮母,居然都是意外死亡谆趾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門叛本,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沪蓬,“玉大人,你說我怎么就攤上這事来候□尾妫” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵营搅,是天一觀的道長云挟。 經(jīng)常有香客問我,道長转质,這世上最難降的妖魔是什么植锉? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮峭拘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己鸡挠,他們只是感情好辉饱,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拣展,像睡著了一般彭沼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上备埃,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天姓惑,我揣著相機與錄音,去河邊找鬼按脚。 笑死于毙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辅搬。 我是一名探鬼主播唯沮,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼甫贯,長吁一口氣:“原來是場噩夢啊……” “哼朴皆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起燥透,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤溶褪,失蹤者是張志新(化名)和其女友劉穎币旧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猿妈,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吹菱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了于游。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毁葱。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贰剥,靈堂內(nèi)的尸體忽然破棺而出倾剿,到底是詐尸還是另有隱情,我是刑警寧澤蚌成,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布前痘,位于F島的核電站,受9級特大地震影響担忧,放射性物質(zhì)發(fā)生泄漏芹缔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一瓶盛、第九天 我趴在偏房一處隱蔽的房頂上張望最欠。 院中可真熱鬧示罗,春花似錦、人聲如沸芝硬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拌阴。三九已至绍绘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迟赃,已是汗流浹背陪拘。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纤壁,地道東北人左刽。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像摄乒,于是被迫代替她去往敵國和親悠反。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容