简单的php文件_适用于初学者的简易PHP文件上传类

class Test_Upload{

protected $_uploaded = array();

protected $_destination;

protected $_max = 1024000;

protected $_messages = array();

protected $_permited = array(

'image/gif',

'image/jpeg',

'image/pjpeg',

'image/png'

);

protected $_renamed = false;

/**

*

* @param mix $path

*

*/

public function __construct($path){

if (!is_dir($path) || !is_writable($path)){

throw new Exception("文件名不可写,或者不是目录!");

}

$this->_destination = $path;

$this->_uploaded = $_FILES;

}

/**

* 移动文件

*

*/

public function move(){

$filed = current($this->_uploaded);

$isOk = $this->checkError($filed['name'], $filed['error']);

//debug ok

if ($isOk){

$sizeOk = $this->checkSize($filed['name'], $filed['size']);

$typeOk = $this->checkType($filed['name'], $filed['type']);

if ($sizeOk && $typeOk){

$success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']);

if ($success){

$this->_messages[] = $filed['name']."文件上传成功";

}else {

$this->_messages[] = $filed['name']."文件上传失败";

}

}

}

}

/**

* 查询messages数组内容

*

*/

public function getMessages(){

return $this->_messages;

}

/**

* 检测上传的文件大小

* @param mix $string

* @param int $size

*/

public function checkSize($filename, $size){

if ($size == 0){

return false;

}else if ($size > $this->_max){

$this->_messages[] = "文件超出上传限制大小".$this->getMaxsize();

return false;

}else {

return true;

}

}

/**

* 检测上传文件的类型

* @param mix $filename

* @param mix $type

*/

protected function checkType($filename, $type){

if (!in_array($type, $this->_permited)){

$this->_messages[] = "该文件类型是不被允许的上传类型";

return false;

}else {

return true;

}

}

/**

* 获取文件大小

*

*/

public function getMaxsize(){

return number_format($this->_max / 1024, 1).'KB';

}

/**

* 检测上传错误

* @param mix $filename

* @param int $error

*

*/

public function checkError($filename, $error){

switch ($error){

case 0 : return true;

case 1 :

case 2 : $this->_messages[] = "文件过大!"; return true;

case 3 : $this->_messages[] = "错误上传文件!";return false;

case 4 : $this->_messages[] = "没有选择文件!"; return false;

default : $this->_messages[] = "系统错误!"; return false;

}

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值