php上传文件分类实例代码

时间:2021-05-19

废话不多说了,直接给大家贴代码了,具体代码如下所示:

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章