热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » PHP/Perl编程 » PHP上传文件通用类CUpload

PHP上传文件通用类CUpload

论坛链接
  • PHP上传文件通用类CUpload
  • 发布时间:2007-10-04 22:37:09    浏览数:5925    发布者:superadmin    设置字体【   
<?php
/*************************************
PHP 上传文件通用类
23:00 2006-11-20 完成
作者:月影 QQ:41096834 email:zhangxugg@163.com
没有版权,欢迎转发 但请保留此说明 谢谢
**************************************
说明 凡是本人写的PHP类,都以MFC的类的命名方式为参照 即以大写C开头 第二个字母也大写 其它字母小写 如CUpload,CDb,CImage等
void CUpload::CUpload($upload_dir="./",$str_file)
函数功能 构造一个上传类
参数 :$upload_dir 上传文件保存目录 默认为当前目录,应该以/结束
$str_file 文件上传表单名 如"file1"
void CUpload::set_permit_filter($filter="")
函数功能 设置允许的上传文件类型
参数 $filter 允许上传文件类型 用~间隔 如$filter="jpg~bmp~gif" 即只允许上传jpg,bmp,gif图片
如果不设置此项,则按本类的数据成员$filter来过滤类型
CUpload::do_upload($dist)
函数功能 实现文件上传,并以预定的文件名保存。如果提交的文件类型中有不允许的文件类型,则停止处理并送出提示信息
参数 $dist 上传目标文件名,不包括路径 如 up.png
使用范例:
//构造一个上传类对象,并定义将文件上传到 "/upload/"目录下,文件上传表单名为 file1 (但这时文件还没有开始上传)
$upload=new CUpload("/upload/","file1);
$upload->set_permit_filter("jpg~jpeg~gif~png"); //设置只能上传 jpg,jpeg,gif,png 类型文件
$upload->do_upload("test.png"); //执行上传文件操作,并把文件保存为test.png
说明:这时
*/
class CUpload //上传文件类定义
{
var $file_name; //文件名:如plmm.jpg
var $ext_name; //副档名:如jpg 注意,不包含 中间的点
var $main_name; //主档名 不包含副档名 如plmm
var $tmp_name; //上传时的临时文件名
var $upload_dir; //上传路径
var $file_size; //文件大小
var $time; //上传文件时间
var $exist;
var $permit_filter=""; //允许上传的文件类型 若为空,则只禁止$filter中列出的类型
//禁止上传的文件类型 如果要禁止文件类型,请加在这里,并以~连接
var $filter="asp~aspx~asax~asa~jsp~cer~cdx~asa~htr~php~php3~exe~cgi";

public function __construct($upload_dir="./",$str)
{
$this->upload_dir=$upload_dir;

$s=$_FILES[$str]['name'];
if(empty($_FILES[$str])) { return false;} //没有提交数据时返回

$this->file_name=$s;
$this->main_name=strtolower(substr($s,0,strrpos($s,".")));
$this->tmp_name=$_FILES[$str]['tmp_name'];
$this->file_size=$_FILES[$str]['size']/1024;
$this->time=date("YmdGis");
$this->ext_name=strtolower(substr($this->file_name,strrpos($this->file_name,".")+1)); //取扩展名

if($this->file_size<=0) {return false;}
if(!$this->check_ext_name())
return false; //检查禁止的文件类型
//echo $this->file_size;
}

//如果设置了此项,则只有在此列表中的类型才允许上传. 比方, 你现在只允许上传图片 可以这样设置过滤
// $up=new CUpload;
// $up->set_permit_filter("jpg~jpeg~bmp~png_gif");
//

function set_permit_filter($filter="")
{
$this->permit_filter=$filter;
}


public function do_upload($opt) //目标文件名,不包括路径
{
if($this->file_size<=0) return false;
if(($this->permit_filter!="")&&(strstr($this->permit_filter,strtolower($this->ext_name))!=""))
{
return false;
}

$this->main_name=strtolower(substr($this->file_name,0,strrpos($this->file_name,".")));
$this->file_name=$opt;

if(file_exists($this->upload_dir.$this->file_name))
{
//echo "文件".$this->file_name."已经存在,跳过上传.";
return false;
}
return (move_uploaded_file($this->tmp_name,$this->upload_dir.$this->file_name)?true:false);
}

public function get_ext_name()
{
return $this->ext_name;
}
private function get_file_size()
{
return $this->file_size;
}
private function check_ext_name() //检查禁止上传文件扩展名 不用由对象调用
{
$tmp_filter=explode("~",$this->filter);
for($i=0;$i<count($tmp_filter);$i++)
{
if(strtolower($this->ext_name)===strtolower($tmp_filter[$i]))
{
return false;
}
}
return true;
}
}
?>下载地址:CUpload.rar
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理