类实例_一个单个文件上传类c_upload_one

本文介绍了一种使用PHP的move_uploaded_file()函数和$_FILES数组实现单个文件上传的方法。文章详细展示了如何设置表单、检查文件大小、验证上传状态,并最终完成文件的上传过程。

<?php
/***********************move_uploaded_file()函数及$_FILES[]实现单个文件上传***********************a
*功能说明:实现单个文件上传
*建立人员:肖红阳
*建立日期:2010-07-21
*修改日期:2010-07-22
*设计思想:1.传送开关(action)打开开始处理2.判断过大?断开重新指定:继续3.文件是否传完到缓冲区?用move_uploaded_file()移动到终点位置:显示上传成功或失败
*使用说明:  
     <form name="form_upload" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
      <input type="hidden" name="post" value="postok"/>
      <input type="file" name="u_file"/>
      <input type="submit" value="提交"/>
     </form>
     <?php
     include ('class/c_file/c_upload_one.php');  
     $up = new c_upload_one('post','postok','./pic','u_file','30',$_SERVER['PHP_SELF']);
     ?>
*******************************************/
class c_upload_one{
public $action;     //传送开关名在表单中的name值
public $path;     //上传的目的路径
public $filename;    //上传的文件名
public $maxsize;    //文件最大容量数值以m兆为单位

function __construct($action,$actionvalue,$path,$filename,$maxsize,$location){
   $this->action=$action;       //传送开关名在表单中的name值
   $this->actionvalue=$actionvalue;    //传送开关名的value值
   $this->path=$path;        //上传的目的路径
   $this->filename=$filename;      //上传表单中的type为file的name值
   $this->maxsize_toB = $maxsize*1048576 ;   //文件最在值以B为单位值
   $this->maxsize_toM= $maxsize;     //文件最在值以m为单位值
   $this->location = $location;     //上传完成后转向的地址

   $this->upload();
}

function upload(){
   if(!is_dir($this->path)){ echo "<script>alert('目录".$this->path."不存在');history.back();</script>";}

   if($_POST[$this->action]==$this->actionvalue)              //判断传送开关是否触发
   {
    if($_FILES[$this->filename][size]>$this->maxsize_toB){           //判断文件是否过大
     echo " <script>alert('该文件过大请选择小于".$this->maxsize_toM."M的文件'); </script>";
    }
    else if($_FILES[$this->filename][tmp_name]){
     //$path=$this->path;
     move_uploaded_file($_FILES[$this->filename][tmp_name],$this->path.$_FILES[$this->filename][name]);//将文件从缓存中移到目标文件夹  
     $path=$this->path."/";
     echo "<script>alert('上传成功');window.location='".$this->location.
       "?path=".$path."&& filename=". $_FILES[$this->filename][name] ."';</script>";//以get方式返回目录及文件名称以供它用  
    
    }
    else echo "<script>alert('上传失败');history.back();</script>";
   }

}

function filename(){
   echo $this->filename;
}
}
?>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值