首页 > 编程技术 > js

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

发布时间:2015-10-30 13:43

本文实例讲述了PHP多文件上传类,分享给大家供大家参考。具体如下:

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

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

标签:[!--infotagslink--]

您可能感兴趣的文章: