加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 21:08:32 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解PHP多文件上传类,供大家参考研究。具体如下: protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages = array(); protected $_permited = array( 'image/gif','image/jpeg','ima

本篇章节讲解PHP多文件上传类,分享给大家供大家参考。具体如下:

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;
    }
    }
    }
    ?>

希望本文所述对大家的php程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读