<?php
/*
 * 功能描述: 文件上传类
 * 源码作者: 李婷 Email:791287793@qq.com
 * 创建时间: 2011-5-13
 *
 */

class uploadLib{
 
 //allowSize - 允许上传文件的大小
 public $allowSize;
 
 // fileName - 文件域的名称
 public $fileName;
 
 //allowType - 允许上传文件的扩展名(以数组形式传输)
 public $allowType;
 
 //uploadUrl - 目标文件夹路径(要求带有/)
 public $uploadUrl;
 
 //定义一个构造函数 初始化成员变量
 public function __construct($_allowSize,$_fileName,$_allowType,$_uploadUrl){
  
  $this->allowSize = $_allowSize;
  $this->fileName  = $_fileName;
  $this->allowType = $_allowType;
  $this->uploadUrl = $_uploadUrl;
  
 }
 
 //定义上传核心函数 uploadit
 
 public function uploadit(){
  
  /* 检查文件大小:
   * 如果上传文件的大小大于规定的大小 就利用ERROR数组记录错误信息
   */
  if($_FILES[$this->fileName]['size'] > $this->allowSize*1024){
   $error[] = '文件最大为'.$this->allowSize.'K';
  }
  
  /*文件类型检查*/
  //1 获得上传文件的扩展名 a.b.c.exe
   // a. 将上传文件名拆分 拆分规则 .
  $nameArr = explode('.', $_FILES[$this->fileName]['name']);
   // b. 获取数组的最后一个元素得到扩展名
  $exeName = end($nameArr);
  
  //2 检查上传文件的扩展名 是否是允许的(如果上传文件的扩展名在 $allowType 数组内就代表是允许的)
  if(!in_array(strtolower($exeName), $this->allowType)){
   $error[] = '文件类型错误';
  }
  
  //如果没错就上传文件
  if(!isset($error)){
   //组建新的文件名
   $Fname = date("Ymd_His").rand(9999999,99999999);
   $FAllname = $Fname.'.'.$exeName;
   
   if(!move_uploaded_file($_FILES[$this->fileName]['tmp_name'],$this->uploadUrl.$FAllname)){
    die('上传失败');
   }else{
    return $this->uploadUrl.$FAllname;
   }
  }else{
   return $error;
  }
  
 }
 
 
 
 
}