php上传文件分类实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所示:
<?php
/**
*文件上传类
*@authorlijiamin
*@time2017-02-17
*@email1195989301@qq.com
*/
classUpload{
private$allowExt=array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名
private$maxSize=1;//限制最大文件上传1M
/**
*获取文件的信息
*@paramstr$flag上传文件的标识
*@returnarr上传文件的信息数组
*/
publicfunctiongetInfo($flag){
return$_FILES[$flag];
}
/**
*获取文件的后缀
*@paramstr$filename文件名
*@returnstr文件扩展名
*/
publicfunctiongetExt($filename){
returnpathinfo($filename,PATHINFO_EXTENSION);
}
/**
*检测上传文件是否合法
*@paramstr$filename文件名
*@returnbool文件扩展名是否合法
*/
privatefunctioncheckExt($filename){
$ext=$this->getExt($filename);
returnin_array($ext,$this->allowExt);
}
/**
*检测文件大小是否超过限制
*@paramintsize文件大小
*@returnbool文件大小是否超过限制
*/
publicfunctioncheckSize($size){
return$size<$this->maxSize*1024*1024;
}
/**
*随机的文件名
*@paramint$len随机文件名的长度
*@returnstr随机字符串
*/
publicfunctionrandName($len=6){
returnsubstr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);
}
/**
*创建文件上传到的路径
*@returnstr文件上传的路径
*/
publicfunctioncreateDir(){
//上传文件路径
$dir='./upload/'.date('Y/m/d',time());
//判断文件夹是否存在,不存在则新建
if(is_dir($dir)||mkdir($dir,0777,true)){
return$dir;
}
}
/**
*文件上传
*@paramstr$flag文件上传标识
*@returnarray返回上传文件名、保存路径
*/
publicfunctionuploadFile($flag){
if($_FILES[$flag]['name']===''||$_FILES[$flag]['error']!==0){
echo"没有上传文件";
return;
}
$info=$this->getInfo($flag);
if(!$this->checkExt($info['name'])){
echo"不支持的文件类型";
return;
}
if(!$this->checkSize($info['size'])){
echo"文件大小超过限制";
return;
}
$filename=$this->randName().'.'.$this->getExt($info['name']);
$dir=$this->createDir();
if(!move_uploaded_file($info['tmp_name'],$dir.'/'.$filename)){
echo"文件上传失败";
}else{
returnarray('filename'=>$filename,'dir'=>$dir);
}
}
}
?>