文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>文件上传(单个或多个)

文件上传(单个或多个)

时间:2006-12-24  来源:gewanhong

中的"upfile"
                      也可以控件是数组,如   
                                             
  */
  function UPLOAD_CLASS($input_name='')
  {
   if($input_name == '')
   {
   echo 'UPLOAD_CLASS类构造出错:请指定表单中FILE控件的名称!如: $up = new UPLOAD_CLASS("up_file");';
   }
   $this->input_name = $input_name;
  }
  /* 设置最大上传的文件大小 */
  function set_size($max_size)
  {
   $this->max_size = $max_size * 1024;
  }
  /* 设置上传文件的扩展名集合 */
  function set_fexts($exts)
  {
   $this->fexts = $exts;
  }
  /* 设置目标文件存在时是否删除 */
  function set_del($bool)
  {
   $this->is_del = $bool;
  }
  /* 功能:上传文件操作
     参数:$dst_file:上传后的目标文件名,如果没有加扩展名则上传时自动加上原文件扩展名.
              如果FILE控件是数组,则 $dst_file 为目标文件个数与上传的文件数匹配的数组,如下:
              array('./img/a.jpg','./img/b.jpg') 也可为 array('./img/a','./img/b')
   返回值: [-1]成功 [0]:没有上传的文件 [1]:文件超过大小 [2]:不是指定的类型
            [3]:目标文件已存在 [4]:目标文件不能写入 [5]:目标文件个数与上传的文件数不匹配
     */
  function upload($dst_file)
  {
   $ay = $_FILES[$this->input_name]['name'];
    if(is_array($ay)) //表单中的FILE控件是数组
   {
    if( !is_array($dst_file) || count($ay) != count($dst_file) ) return 5;
    $tmp_ay = array(); //临时数组保存暂时已上传成功的文件名,用于所有文件没有完全上传成功的情况删除它们
    $ret    = -1;
    foreach($ay as $key=>$val)
       {
       $file_name = $_FILES[$this->input_name]['name'][$key];    //上传的原文件名
       $file_size = $_FILES[$this->input_name]['size'][$key];    //上传后的临时文件名
       $tmp_file  = $_FILES[$this->input_name]['tmp_name'][$key];//文件大小
    if($file_name != '') //该控件上传了文件
    {
     $ret = $this->_upload($file_name,$tmp_file,$file_size,$dst_file[$key]);
     if( $ret != -1 ) //如果文件没有上传成功,就要删除已经上传的文件
     {
      for($i=0; $iinput_name]['name'];    //上传的原文件名
        $tmp_file  = $_FILES[$this->input_name]['tmp_name'];//上传后的临时文件名
             $file_size = $_FILES[$this->input_name]['size'];    //文件大小
    return $this->_upload($file_name,$tmp_file,$file_size,$dst_file);
   }
  }
    /* 功能:得到已上传成功的文件名,多个用","隔开
    参数: $flg [0]:文件名有完整的路径 [1]:文件名不带路径
*/
function uploaded_files($flg=0)
{
  $files = '';
  if( $flg == 0 )
  {
   $files = $this->uploaded_file;
  }else{
   $ay=explode(',',$this->uploaded_file);
   for($i=0; $i
    /* 得到上传的信息,如果FILE控件是个数组,则返回的是个二维数组,否则返回是一级数组 */
function &uploadInfo()
{
  $ay=array();
  if(!is_array($_FILES[$input_name]['name']))
  {
     $ay['name']     = $_FILES[$this->input_name]['name'];
     $ay['ext']      = strtolower(strrchr($ay['name'],'.'));
     $ay['type']     = $_FILES[$this->input_name]['type'];
     $ay['size']     = $_FILES[$this->input_name]['size'];
     $ay['tmp_name'] = $_FILES[$this->input_name]['tmp_name'];
  }else{
     foreach($_FILES[$input_name]['name'] as $i=>$val)
     {
      $ay[$i]['name']     = $_FILES[$this->input_name]['name'][$i];
      $ay[$i]['ext']      = strtolower(strrchr($ay[$i]['name'],'.'));
      $ay[$i]['type']     = $_FILES[$this->input_name]['type'][$i];
      $ay[$i]['size']     = $_FILES[$this->input_name]['size'][$i];
      $ay[$i]['tmp_name'] = $_FILES[$this->input_name]['tmp_name'][$i];
     }
  }//End If
  return $ay;
}
   
/* 功能: 得到上传的状态,数组包含 总的上传个数 和 真实文件个数(FILE控件数组中选择的文件数)
    返回: $ay['sum']:总的上传个数 $ay['up']:真实文件个数
*/
function &upload_state()
{
  $ay=array('sum'=>0,'up'=>0);
  if(!is_array($_FILES[$this->input_name]['name']))
  {
     $ay['sum']++;
     if( $_FILES[$this->input_name]['name'] != '' ) $ay['up']++;
  }else{
     foreach($_FILES[$this->input_name]['name'] as $i=>$val)
     {
               $ay['sum']++;
      if( $_FILES[$this->input_name]['name'][$i] != '' ) $ay['up']++;
     }
  }//End If
  return $ay;
}
  /* 得到小写的文件扩展名,如".php" */
  function file_ext($file_name)
  {
   return strtolower(strrchr($file_name,"."));
  }
     /* -私有?


相关阅读 更多 +
排行榜 更多 +
边境警察巡逻模拟中文版下载

边境警察巡逻模拟中文版下载

角色扮演 下载
ff14水晶世界手游下载

ff14水晶世界手游下载

角色扮演 下载
享做笔记app下载手机版

享做笔记app下载手机版

生活实用 下载