标签:
有自动生成路径的方法,自动生成名字的方法,上传的方法
<?php defined(‘ACC‘)||exit(‘无权访问‘); /* 上传文件类 配置允许的后缀 配置允许的大小 随机生成目录 随机生成文件名 获取文件后缀 判断文件的后缀 良好的报错支持 */ class upTool{ protected $allowExt=‘jpg,jpeg,gif,bmp,png‘; protected $maxSize=1;//m为单位 protected $file=null; protected $errno=0;//错误代码 protected $error=array( 0=>‘无错‘, 1=>‘上传文件超出系统限制‘, 2=>‘上传文件大小超出网页表单页面‘, 3=>‘文件只有部分被上传‘, 4=>‘没有文件被上传‘, 6=>‘找不到临时文件夹‘, 7=>‘文件写入失败‘, 8=>‘不允许的文件后缀‘, 9=>‘文件大小超出类的允许范围‘, 10=>‘创建目录失败‘, 11=>‘移动失败‘ ); public function up($key){ if(isset($FILES[$key])){ return false; } $f=$_FILES[$key]; //检查上传有没有成功 if($f[‘error‘]){ $this->errno=$f[‘error‘]; return false; } //获取后缀 $ext=$this->getExt($f[‘name‘]); //检查后缀 if(!$this->isAllowExt($ext)){ $this->errno=8; return false; } //检查大小 if(!$this->isAllowSize($f[‘size‘])){ $this->errno=9; return false; } //上传 //创建目录 $dir=$this->mk_dir(); if($dir==false){ $this->errno=10; return false; } //生成随机文件名 $newname=$this->randName().‘.‘.$ext; $dir=$dir.‘/‘.$newname; //移动 if(!move_uploaded_file($f[‘tmp_name‘],$dir)){ $this->errno=11; return false; } return str_replace(ROOT,‘‘,$dir); } public function getErr(){ return $this->error[$this->errno]; } protected function getEXT($file){ $tmp=explode(‘.‘,$file); return end($tmp); } protected function isAllowExt($ext){ return in_array(strtolower($ext),explode(‘,‘,strtolower($this->allowExt))); } protected function isAllowSize($size){ return $size<=$this->maxSize*1024*1024; } //按日期创建目录 protected function mk_dir(){ $dir=ROOT.‘data/images/‘.date(‘Ym/d‘); if(is_dir($dir)||mkdir($dir,0777,true)){ return $dir; }else{ return false; } } //随机生成文件名 function randName($length=6){ $str=‘abcdefghijklmnopqrstuvwxyz0123654789‘; return substr(str_shuffle($str),0,$length); } //动态配置信息 public function addExt($ext){ $this->allowExt=$this->allowExt.‘,‘.$ext; } public function setSize($size){ $this->maxSize=$size; } } ?>
标签:
原文地址:http://www.cnblogs.com/lzzhuany/p/4782305.html