欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

经典的PHP文件上传类

程序员文章站 2024-04-03 22:35:58
...
在课堂上给大家写了一个经典的文件上传类,灵活性还可以,大家可以参考使用,

上传文件:

/**

* author : PHP100.com

* date :2012-9-15 经典的文件上传类

**/

if(!empty($_POST['sub'])){

include("up.class.php");

$up = new up($_FILES['up']);

//参数,文件流必选,【指定目录,指定大小,指定文件名】可选

}

?>

上传类:

/**

* author : PHP100.com

* date :2012-9-15 经典的文件上传类

**/

class up {

public $f_size;//定义的文件大小

public $f_sys;//接收文件属性

public $f_name;//自定义的文件名

public $f_dir;//自定义上传目录

//参数:文件流,目录,大小,文件名

function __construct($sys,$dir="",$size="1",$name=""){

$this->f_size=$size*1000000;

$this->f_sys=$sys;

$this->f_name=$name;

$this->f_dir=$dir;

$this->f_mv();

}

//判断文件大小

function is_size(){

if($this->f_sys['size']f_size){

return true;

}else{

return false;

}

} //end

//判断文件类型,返回扩展名

function is_type(){

switch($this->f_sys['type']){

case "image/x-png": $ok=".png";

break;

case "image/png": $ok=".png";

break;

case "application/pdf": $ok=".pdf";

break;

case "image/pjpeg": $ok=".jpg";

break;

case "image/jpeg": $ok=".jpg";

break;

case "image/jpg": $ok=".jpg";

break;

default: $ok=false;

break;

}

return $ok;

}

//终止函数

function f_over($n){

echo $n;

exit();

}

//判断文件夹是否存在,并创建

function is_dirs(){

if($this->f_dir){

if(!is_dir($this->f_dir)){

mkdir($this->f_dir);

}

return $this->f_dir;

}else{

if(!is_dir(date("Ymd"))){

mkdir(date("Ymd"));

}

return date("Ymd");

}

}

//文件名的定义,不定义而使用时间戳

function is_name(){

if($this->f_name){

$fn=$this->f_name.$this->is_type();

}else{

$fn=time().rand(100,999).$this->is_type();

}

return $this->is_dirs()."/".$fn;

}

//上传文件

function f_mv(){

$this->is_size()?null:$this->f_over("文件超过大小");

$this->is_type()?null:$this->f_over("文件类型不正确");;

move_uploaded_file($this->f_sys['tmp_name'],$this->is_name());

}

//请继续完善,水印,等等

}

?>