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); } } } ?>