php上传文件分类实例代码
程序员文章站
2024-03-07 15:20:27
废话不多说了,直接给大家贴代码了,具体代码如下所示:
废话不多说了,直接给大家贴代码了,具体代码如下所示:
<?php /** * 文件上传类 * @author lijiamin * @time 2017-02-17 * @email 1195989301@qq.com */ class upload{ private $allowext = array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名 private $maxsize = 1;//限制最大文件上传1m /** * 获取文件的信息 * @param str $flag 上传文件的标识 * @return arr 上传文件的信息数组 */ public function getinfo($flag){ return $_files[$flag]; } /** * 获取文件的后缀 * @param str $filename 文件名 * @return str 文件扩展名 */ public function getext($filename){ return pathinfo($filename,pathinfo_extension); } /** * 检测上传文件是否合法 * @param str $filename 文件名 * @return bool 文件扩展名是否合法 */ private function checkext($filename){ $ext = $this->getext($filename); return in_array($ext,$this->allowext); } /** * 检测文件大小是否超过限制 * @param int size 文件大小 * @return bool 文件大小是否超过限制 */ public function checksize($size){ return $size < $this->maxsize * 1024 * 1024; } /** * 随机的文件名 * @param int $len 随机文件名的长度 * @return str 随机字符串 */ public function randname($len=6){ return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzabcdefghjklmnpqrstuvwxyz234565789'),0,$len); } /** * 创建文件上传到的路径 * @return str 文件上传的路径 */ public function createdir(){ //上传文件路径 $dir = './upload/'.date('y/m/d',time()); //判断文件夹是否存在,不存在则新建 if(is_dir($dir) || mkdir($dir,0777,true)){ return $dir; } } /** * 文件上传 * @param str $flag 文件上传标识 * @return array 返回上传文件名、保存路径 */ public function uploadfile($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{ return array('filename'=>$filename,'dir'=>$dir); } } } ?>