<?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;
}
}
}
转载于:https://blog.51cto.com/3430186/635717