CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

今晚刚完成的 文件上传的类 推荐

楼主gggxin(于吉)2004-09-01 07:33:52 在 Web 开发 / PHP 提问

文件里有详细的说明。可以直接测试.  
  下载地址   :  
  http://202.101.43.198/ggg/wcg/attachment.php?=e6c6bbd585ecf4123298dc78fdf3556c&postid=126  
  源代码  
  <?  
  /**+-----------------------------------------------  
    **     Copyright   (c)   1998-1999   *********公司技术开发部  
  创建人: GGG  
  日     期: 2004-8-31   0:25  
  修改人: GGG  
  日     期: 2004-8-31   0:25  
  描     述: 实现文件上传的类  
  调     用:  
  备     注:  
  可以上传文件到网上指定目录,如果是图片只允许上传gif,jpg类型  
  程序要完成的几点:  
  如果上传的文件名和网上目录下的名称重复,对上传的文件进行改名,  
  这里采用文件名后加0-9的数字方法.  
  对于上传图片文件,  
  版     本:  
  1.0  
  **+-----------------------------------------------  
  */  
   
   
  if(!defined("CLASS_GggFileUpload"))  
  {  
  define("CLASS_GggFileUpload","1");  
   
  class   GggFileUpload  
  {  
  var   $mIsDebug=true; //设置调试状态,在类中调试会有错,不要在类中调试false  
  var   $mStrErr=""; //出错的文本信息,如果IsDebug为真,则在出错后自动中止程序执行,输出错误信息  
  var   $mIsFileRight=false; //ture将保证上传后的文件名只能由字母,数字,上下划线,点号组成  
  var   $mIsFileLower=true; //ture将把文件名采用小写,在由于win与unix系统对文件名大小字敏感不同,会在下载文件时出现很多麻烦  
  var   $mMaxFileNameLen=30; //文件名允许的最大长度  
   
  var   $ExtFilter=array('php'   =>   'php_'); //这里设置要过虑的扩展名,比如所用户上传的   .php   的文件改成   .php_   程序采用替换的的方法   比如   .php3   的会变被换成   .php_3  
   
  var   $mInputName; //<input   type=file   name=aaa> 所对应的aaa, *保存的是一个字符窜  
   
  var   $mFileType; //文件上传的类型  
  var   $mFileSize; //文件上传的大小  
  var   $mFileName; //文件上传的名字  
  var   $mFileTmpName; //文件上传后的临时名  
   
  var   $mFileUpPath; //文件要上传服务器地址  
  var   $mFileUpType; //文件上传所允许的类型  
  var   $mFileUpSize; //文件上传所允许的最大字节  
  var   $mFileUpName; //文件上传后所用的名字,也就是要更改成的名字  
  var   $mErrorFile="failt"; //文件名不法时更改成在   mErrorFile   为开始的文件名  
   
  /**+-----------------------------------------------  
  函   数   名:   GggFileUpload  
  功能描述:   GggFileUpload初始化  
  函数说明:   类的构造函数   用于初始化类的成员变量  
  调用函数:   GggFileUpload()  
  参数:  
  $inputName  
  <input   type=file   name=aaa> 所对应的aaa, 保存的是一个字符窜  
  $fileUpPath  
  文件要上传服务器地址  
  $fileUpType  
  文件上传所允许的类型  
  $fileUpSize  
  文件上传所允许的最大字节   默认为   150000   字节  
  返         回:   无  
  设   计   者:   ggg         日期:   2004-9-1   1:17  
  修   改   者:   ggg         日期:   2004-9-1   1:17  
  版         本:   1.0  
  **+-----------------------------------------------  
  */  
  function   GggFileUpload($inputName,$fileUpPath,$fileUpType="",$fileUpSize=150000)  
  {  
  $this->Set_File($inputName);  
  $this->Set_FileUpPath($fileUpPath);  
  $this->Set_FileUpSize($fileUpSize);  
  $this->Set_FileUpType($fileUpType);  
  }//END   GggFileUpload  
  function   Show_Debug()    
  {  
  if($this->mIsDebug   &&   !empty($this->mStrErr))  
  printf("<br>Debug:<font   color=#ff00ff>   %s</font><br>\n",   $this->mStrErr);  
  }  
  //**********************   Set   区  
   
  //设置文件的属性  
  function   Set_File($inputName)  
  {  
  if(!empty($inputName))  
  {  
  $this->mInputName=$inputName; //<input   type=file   name=aaa> 所对应的aaa, *保存的是一个字符窜  
  $this->mFileType=$_FILES[$inputName]["type"]; //文件上传的类型  
  $this->mFileSize=$_FILES[$inputName]["size"]; //文件上传的大小  
  $this->mFileName=$_FILES[$inputName]["name"]; //文件上传的名字  
  $this->mFileTmpName=$_FILES[$inputName]["tmp_name"]; //文件上传后的临时名  
  }  
  }  
   
  //设置文件文件名  
  function   Set_FileName($filename)  
  {  
  if(!empty($filename))  
  $this->mFileName=trim($filename);  
  }  
   
  //设置文件要上传服务器地址  
  function   Set_FileUpPath($fileUpPath)  
  {  
  if(!empty($fileUpPath))  
  $this->mFileUpPath=trim($fileUpPath);  
  }  
   
  //设置文件上传所允许的最大字节  
  function   Set_FileUpSize($fileUpSize)  
  {  
  if(!empty($fileUpSize)   &&   ereg("^[1-9][0-9]*$",$fileUpSize))  
  $this->mFileUpSize=$fileUpSize;  
  }  
   
  //设置文件上传所允许的类型  
  function   Set_FileUpType($fileUpType)  
  {  
  if(!empty($fileUpType))  
  $this->mFileUpType=trim($fileUpType); //文件上传所允许的类型  
  }  
   
   
  //**********************   Get   区  
   
  //得到文件名  
  function   Get_FileName()  
  {  
  return   $this->mFileName;  
  }  
   
  //得到文件的类型  
  function   Get_FileType()  
  {  
  return   $this->mFileType;  
  }  
   
  //得到文件的大小  
  function   Get_FileSize()  
  {  
  return   $this->mFileSize;  
  }  
   
  //文件上传后的临时名  
  function   Get_FileTmpName()  
  {  
  return   $this->mFileTmpName;  
  }  
   
  //得到文件要上传服务器地址  
  function   Get_FileUpPath()  
  {  
  return   $this->mFileUpPath;  
  }  
   
  //得到文件上传所允许的最大字节  
  function   Get_FileUpSize()  
  {  
  return   $this->mFileUpSize;  
  }  
   
  //得到文件上传所允许的类型  
  function   Get_FileUpType()  
  {  
  return   $this->mFileUpType;  
  }  
   
   
   
  //**********************   Check   区  
   
  文件太长。请从上面的链接下载..  
  献丑了,多提宝贵意见. 问题点数:20、回复次数:11Top

1 楼whnnet(小孙)回复于 2004-09-01 07:53:24 得分 2

支持,希望多写写好代码共享Top

2 楼fhiesc(慢慢坚持)回复于 2004-09-01 07:55:52 得分 2

我下载试用Top

3 楼xuzuning(唠叨)回复于 2004-09-01 08:08:16 得分 1

不至于那么复杂吧?  
  应提供同名覆盖的选择Top

4 楼uuq(杜牧)回复于 2004-09-01 08:13:19 得分 1

好啊,强烈支持。这样php又多份力量了。Top

5 楼uuq(杜牧)回复于 2004-09-01 08:16:33 得分 1

应该把代码全部贴出来,以后能留在这里嘛Top

6 楼qndt(高手之路 灌水起步)回复于 2004-09-01 08:30:52 得分 1

吐血狂顶,如果打个包,几个功能页面也有就好了。Top

7 楼chinaworker(网络混混 bokele.com)回复于 2004-09-01 08:44:24 得分 1

也不支持多文件上傳Top

8 楼ustb(偶然)回复于 2004-09-01 11:53:52 得分 10

不要用copy函数,用move_uploaded_file更好一些.  
  少了is_uploaded_file的检查.  
   
  Top

9 楼gggxin(于吉)回复于 2004-09-01 14:37:24 得分 0

谢谢大家的介意。因为只做了一个晚上的,还没完善  
  to     uuq(杜牧)    
  文件太长。请从上面的链接下载..  
  http://202.101.43.198/ggg/wcg/attachment.php?=e6c6bbd585ecf4123298dc78fdf3556c&postid=126  
   
  to     xuzuning(唠叨)    
  程序采用比较全面的防错机制。也有   同名覆盖的功能   (文件里有说明),下面有例子  
   
  to   chinaworker(网络混混)    
  多文件上传当然也可以实现呀,见下面  
   
  $t   =   new   GggFileUpload("filename","../test/","text,image");  
  $t->UpLoad($keepName="ggg.txt",$originalFile="ggg.txt");//这里实现同名覆盖  
   
  $t->Set_File("filename1","../test/","text,image");//这里设置第二个文件上传参数  
  $t->UpLoad();//进行第二个文件的上传.  
   
   
  $t->Set_File("filename2");//这里设置第三个文件上传参数  
  $t->UpLoad();//进行第三个文件的上传.  
  ....  
   
  to   ustb(偶然)   :谢谢你的介意.我会改正.  
   
  最后   把文件时里    
  //*********************     类测试    
   
  //!!!!!!!!!!!!!!!!!!!!!     类测试    
  之间的代码   注解去掉就可以直接运行这个类进行文件上传的测试了  
  Top

10 楼pwtitle(doodoo)回复于 2004-09-01 21:44:59 得分 1

Pear::http_upload多爽啊。Top

11 楼gggxin(于吉)回复于 2004-09-01 23:45:16 得分 0

今天更新了下上传类,改了不少错误。  
  新的下载地址是:  
  http://218.108.4.134/bb/wwjh/ggg/down/fileupclass.php_  
  Top

相关问题

  • 用VC完成对所有类型的文件和文件的拷贝用什么类?
  • 文件类型
  • 文件类型?
  • CFtpFileFind类 FindFile文件
  • 缺少类文件?
  • 能否用字符串格式化输出来完成取路径中的文件名呢?类似于Substring()
  • 文件的使用 类型文件
  • 怎么完成文件的删除,该文件为只读(C#)
  • 类头文件的问题
  • ##########注册文件类型#################

关键词

  • 文件
  • 函数
  • 文件名
  • 字符
  • 服务器
  • php
  • fileupsize
  • fileuptype
  • fileuppath
  • inputname

得分解答快速导航

  • 帖主:gggxin
  • whnnet
  • fhiesc
  • xuzuning
  • uuq
  • uuq
  • qndt
  • chinaworker
  • ustb
  • pwtitle

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo