<?php
//print_r($_FILES[‘pic‘]);
//print_r($_SERVER);
header("Content-type:text/html; charset=utf-8");
date_default_timezone_set("PRC");
define("ROOT",$_SERVER[‘DOCUMENT_ROOT‘]);
class Upload{
protected $allowExt=array(‘jpg‘,‘png‘,‘gif‘,‘bmp‘); //设置上传类型
protected $allowSize=2; //限制上传大小
protected $errno=0;
protected $error=array(
0=>‘文件上传成功‘,
1=>‘文件超过了 php.ini 中 upload_max_filesize 选项限制的值‘,
2=>‘上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值‘,
3=>‘文件只有部分被上传‘,
4=>‘没有文件被上传‘,
6=>‘找不到临时文件夹‘,
7=>‘文件写入失败‘,
8=>‘文件上传名字name未设置‘,
9=>‘上传后缀名不允许‘,
10=>‘文件创建目录有问题‘,
11=>‘错误类型未知‘,
12=>‘不是上传文件‘
);
protected function getExt($filename){ /*获取后缀名*/
$ext=strtolower(strrchr($filename,‘.‘));
return $ext;
}
protected function checkExt($ext){ /*检测后缀名*/
return in_array(ltrim($ext,‘.‘),$this->allowExt);
}
protected function checkSize($size){ /*检测大小*/
return $size<=$this->allowSize*1000*1000;
}
protected function mk_dir(){ /*创建目录*/
$dir=date("Ymd",time());
$dir=ROOT."/test/upload/img/".$dir;
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
return $dir;
}
protected function random($n){ /*生成随机名*/
if($n<=0){
return false;
}
$str="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$str=substr(str_shuffle($str),0,$n);
return $str;
}
function getErr(){ /*设置错误接口*/
return $this->error[$this->errno];
}
function up($name){ /*实例化对象后调用公用方法*/
if(!isset($_FILES[$name])){
return false;
}
$upload=$_FILES[$name];
$ext=$this->getExt($upload[‘name‘]);
if(!$this->checkExt($ext)){
$this->errno=9;
return false;
}
if(!$this->checkSize($upload[‘size‘])){
$this->errno=1;
return fasle;
}
if($this->error=$upload[‘error‘]>0){
$this->errno=11;
return false;
}
$path=$this->mk_dir()."/".$this->random(8).$ext;
if(!move_uploaded_file($upload[‘tmp_name‘],$path)) {
$this->errno=10;
return false;
}
$path=str_replace(‘ROOT‘,‘‘,$path);
return $path;
}
}
$p=new Upload();
if($path=$p->up(‘pic‘)){
echo"上传成功";
echo $path;
}else{
echo $p->getErr();
}
?>