<?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)系作者
- 文/潘曉璐 我一進店門叛本,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沪蓬,“玉大人,你說我怎么就攤上這事来候□尾妫” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵营搅,是天一觀的道長云挟。 經(jīng)常有香客問我,道長转质,這世上最難降的妖魔是什么植锉? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮峭拘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己鸡挠,他們只是感情好辉饱,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拣展,像睡著了一般彭沼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上备埃,一...
- 文/蒼蘭香墨 我猛地睜開眼甫贯,長吁一口氣:“原來是場噩夢啊……” “哼朴皆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起燥透,我...
- 正文 年R本政府宣布前痘,位于F島的核電站,受9級特大地震影響担忧,放射性物質(zhì)發(fā)生泄漏芹缔。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一瓶盛、第九天 我趴在偏房一處隱蔽的房頂上張望最欠。 院中可真熱鬧示罗,春花似錦、人聲如沸芝硬。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽拌阴。三九已至绍绘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迟赃,已是汗流浹背陪拘。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 下面是源碼.h文件 import "XMWUploadManager.h" import "TXYUploadMa...
- 文/ZYRzyr原文鏈接:http://www.reibang.com/p/c66d50cd14ee 閱讀建議:本...
- HTTPMethod.h HTTPMethod.m 數(shù)據(jù)解析 提交表單的時候馍佑,例如個人信息斋否,有頭像和基本信息都要上...
- 作者:鄒峰立茵臭,微博:zrunker,郵箱:zrunker@yahoo.com舅世,微信公眾號:書客創(chuàng)作旦委,個人平臺:ww...
- 1在泰國舉行的谷歌開發(fā)者論壇上罢低,谷歌為我們介紹了一個名叫Glide的圖片加載庫查辩,作者是bumptech。這個庫被廣...