PHP封装一个上传类

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

}

?>


本文出自 “曹瑞东” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。