分享
 
 
 

偶自己写的一个PHP上传文件的类

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

<?php

/**

*

* 这是偶写的一个很普通的文件上传类,个人感觉非常简单,只要有点PHP基础滴人都应该能看懂~~

* 不过功能上基本够用了,是一款普通实用的东西~~呵呵……

* 偶在CSDN上贴了一下~很多朋友给出了意见~~在此非常感谢~~

* 在朋友们滴建议下偶也做了一些改进~~在此要特别感谢CSDN的好位好友:syre(神仙)、twt326(天地小子)

* 还有一位CSDN滴好友www0aspsun0com(源码联盟),建议偶整理一下提供一个供下载的完整版,于是介个类就正式诞生了~~

* 介个类目前还不是特别完善,有好多地方需要改进,哪位有缘人见到的话请留下宝贵的意见或建议,谢谢了~~

* 偶滴联系方式如下,如果有愿意与偶进行交流滴请加偶或留言~~~

*

* ——————————— Contact —

* ID one:intereye

* ID two:国际互联眼

* HomePage:http://www.inteye.net

* E-mail:inteye@163.com

* OICQ:574908

* MSN:inteye@hotmail.com

* POPO:inteye@163.com

* ———————————— End —

*

* Apache2 + PHP5.0

* Version:1.0

* LastUpdate:2004-10-10 12:57:32

*

* ————————————————————————————————— Example —

* test.php @ 处理表单文件名

* <?php

*

* include("upload.php"); # 加入类文件

* $f_upload = new upload_other; # 创建对象

* $f_upload->set_file_type($_FILES['src']['type']); # 获得文件类型

* $f_upload->set_file_name($_FILES['src']['name']); # 获得文件名称

* $f_upload->set_file_size($_FILES['src']['size']); # 获得文件尺寸

* $f_upload->set_upfile($_FILES['src']['tmp_name']); # 服务端储存的临时文件名

* $f_upload->set_size(100); # 设置最大上传KB数

* $f_upload->set_base_directory("uploadImages"); # 文件存储根目录名称

* $f_upload->set_url("up.php"); # 文件上传成功后跳转的文件

* $f_upload->save(); # 保存文件

*

* ?>

* —————————————————————————————————— End —

*

* 偶没有在类里做有无文件的验证,大家可以在前台搞定~~

*

* —————————————————————————— Form —

* upload.htm @ 表单文件名

*

* <html>

* <head>

* <title>文件上传实例</title>

* </head>

* <body>

* <form action="test.php" method="post" enctype="multipart/form-data">

* <table border=0 cellPadding=3 cellSpacing=4 width=30%>

* <tr>

* <td width=10% nowrap>附件来源</td>

* <td><input name="src" type="file"/></td>

* </tr>

* <tr>

* <td colSpan=2 align=center><input type="submit" value="上传"></td>

* </tr>

* </table>

* </form>

* </body>

* </html>

*

* ———————————————————————————— End —

*

* 上面的两个文件可根据自己的需要决定合并或不合并~~如果在使用中有任何问题可以跟偶联系~~^_^

*

**/

/**文件上传类**/

class upload_file

{

/**声明**/

var $upfile_type,$upfile_size,$upfile_name,$upfile;

var $d_alt,$extention_list,$tmp,$arri;

var $datetime,$date;

var $filestr,$size,$ext,$check;

var $flash_directory,$extention,$file_path,$base_directory;

var $url; //文件上传成功后跳转路径;

function upload_file()

{

/**构造函数**/

$this->set_url("index.php"); //初始化上传成功后跳转路径;

$this->set_extention(); //初始化扩展名列表;

$this->set_size(50); //初始化上传文件KB限制;

$this->set_date(); //设置目录名称;

$this->set_datetime(); //设置文件名称前缀;

$this->set_base_directory("attachmentFile"); //初始化文件上传根目录名,可修改!;

}

/**文件类型**/

function set_file_type($upfile_type)

{

$this->upfile_type = $upfile_type; //取得文件类型;

}

/**获得文件名**/

function set_file_name($upfile_name)

{

$this->upfile_name = $upfile_name; //取得文件名称;

}

/**获得文件**/

function set_upfile($upfile)

{

$this->upfile = $upfile; //取得文件在服务端储存的临时文件名;

}

/**获得文件大小**/

function set_file_size($upfile_size)

{

$this->upfile_size = $upfile_size; //取得文件尺寸;

}

/**设置文件上传成功后跳转路径**/

function set_url($url)

{

$this->url = $url; //设置成功上传文件后的跳转路径;

}

/**获得文件扩展名**/

function get_extention()

{

$this->extention = preg_replace('/.*\.(.*[^\.].*)*/iU','\\1',$this->upfile_name); //取得文件扩展名;

}

/**设置文件名称**/

function set_datetime()

{

$this->datetime = date("YmdHis"); //按时间生成文件名;

}

/**设置目录名称**/

function set_date()

{

$this->date = date("Y-m-d"); //按日期生成目录名称;

}

/**初始化允许上传文件类型**/

function set_extention()

{

$this->extention_list = "doc|xls|ppt|avi|txt|gif|jpg|jpeg|bmp|png"; //默认允许上传的扩展名称;

}

/**设置最大上传KB限制**/

function set_size($size)

{

$this->size = $size; //设置最大允许上传的文件大小;

}

/**初始化文件存储根目录**/

function set_base_directory($directory)

{

$this->base_directory = $directory; //生成文件存储根目录;

}

/**初始化文件存储子目录**/

function set_flash_directory()

{

$this->flash_directory = $this->base_directory."/".$this->date; //生成文件存储子目录;

}

/**错误处理**/

function showerror($errstr="未知错误!"){

echo "<script language=javascript>alert('$errstr');location='javascript:history.go(-1);';</script>";

exit();

}

/**跳转**/

function go_to($str,$url)

{

echo "<script language='javascript'>alert('$str');location='$url';</script>";

exit();

}

/**如果根目录没有创建则创建文件存储目录**/

function mk_base_dir()

{

if (! file_exists($this->base_directory)){ //检测根目录是否存在;

@mkdir($this->base_directory,0777); //不存在则创建;

}

}

/**如果子目录没有创建则创建文件存储目录**/

function mk_dir()

{

if (! file_exists($this->flash_directory)){ //检测子目录是否存在;

@mkdir($this->flash_directory,0777); //不存在则创建;

}

}

/**以数组的形式获得分解后的允许上传的文件类型**/

function get_compare_extention()

{

$this->ext = explode("|",$this->extention_list);//以"|"来分解默认扩展名;

}

/**检测扩展名是否违规**/

function check_extention()

{

for($i=0;each($this->ext);$i++) //遍历数组;

{

if($this->ext[$i] == strtolower($this->extention)) //比较文件扩展名是否与默认允许的扩展名相符;

{

$this->check = true; //相符则标记;

break;

}

}

if(!$this->check){$this->showerror("正确的扩展名必须为".$this->extention_list."其中的一种!");}

//不符则警告

}

/**检测文件大小是否超标**/

function check_size()

{

if($this->upfile_size > round($this->size*1024)) //文件的大小是否超过了默认的尺寸;

{

$this->showerror("上传附件不得超过".$this->size."KB"); //超过则警告;

}

}

/**文件完整访问路径**/

function set_file_path()

{

$this->file_path = $this->flash_directory."/".$this->datetime.".".$this->extention; //生成文件完整访问路径;

}

/**上传文件**/

function copy_file()

{

if(copy($this->upfile,$this->file_path)){ //上传文件;

print $this->go_to("文件已经成功上传!",$this->url); //上传成功;

}else {

print $this->showerror("意外错误,请重试!"); //上传失败;

}

}

/**完成保存**/

function save()

{

$this->set_flash_directory(); //初始化文件上传子目录名;

$this->get_extention(); //获得文件扩展名;

$this->get_compare_extention(); //以"|"来分解默认扩展名;

$this->check_extention(); //检测文件扩展名是否违规;

$this->check_size(); //检测文件大小是否超限;

$this->mk_base_dir(); //如果根目录不存在则创建;

$this->mk_dir(); //如果子目录不存在则创建;

$this->set_file_path(); //生成文件完整访问路径;

$this->copy_file(); //上传文件;

}

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有