上传文件func

 

function up_file($file_dir=false,$input_name='',$file_type=array('image/gif','image/jpeg','image/pjpeg'),$file_name=false,$file_max_size=2)
{//上传图片,$file_dir:传入图片保存文件夹,并返回图片保存所有信息;返回一个数组:array(成功吗,出错信息,array(上传后名,文件夹,上传前文件名));
//对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg
  //$file_dir = dirname(__FILE__).'/'.$file_dir;
  if ( (intval(ini_get('upload_max_filesize')) < $file_max_size) && (!ini_set('upload_max_filesize',$file_max_size)) )
  {//不允许修改
      return array(false,"你需要上传的文件最大值 $file_max_size M,超过服务器默认设置大小".ini_get('upload_max_filesize').
                         ',但服务器不允许使用ini_set方法修改upload_max_filesize(允许上传文件的最大值,单位是M).'.
                         "你只能手动修改php.ini中的upload_max_filesize值成 $file_max_size 后才能正常操作,".
                         '或者把自己允许的最大值改成服务器默认值一样.');
  }
   
  $error_a = array('0: 没有错误发生,文件上传成功。',
                   '1: 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 ',
                   '2: 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ',
                   '3: 文件只有部分被上传。 ',
                   '4: 没有文件被上传。' ,
                   '5: 上传文件为0',
                   '6: 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。'
                   );
                  
  if (!file_exists($file_dir))
  {   
        return array(false,'保存文件夹['.$file_dir.']不存在,请创建再试.');
  }
  if (!is_array($file_type))
  {   
        return array(false,'图片类型未指定.请指定图片类型数组');
  }
 
  if ($input_name=='') $files = $_FILES;
  else if(empty($_FILES[$input_name]) )
  {
        return array(false,'&lt;input type="file" name="'.$input_name.'"&gt;对象 不存在');
  }else $files = $_FILES[$input_name];
 
  $re_array=array();

  foreach( $files as $file)
  {
    if (is_array($file['error']))
    {
      $for_count = count($file['error']);
     
      for ($for_i =0; $for_i <  $for_count; $for_i++)
      {
            if ($file["error"][$for_i] == 4) continue;//未选择文件
           
            if ($file["error"][$for_i] > 0)
            {
             return array(false,$error_a[$file["error"][$for_i]]);
           }
 
           if ($file["size"][$for_i] / 1048576 > $file_max_size)
           {
             return array(false,"文件超过 $file_max_size M!");
           }
     
           if (!in_array($file["type"][$for_i],$file_type))
           {
             return array(false," {$file["type"][$for_i]} 类型禁止上传!");
           }
     
           $file_name = $file_name?$file_name:preg_replace('/^.+/.|^.+$/',md5(time()+count($re_array)).'.',$file['name'][$for_i]);
           if (@move_uploaded_file($file["tmp_name"][$for_i],$file_dir.'/'.$file_name))
           {
             $re_array[count($re_array)] = array($file_name,$file_dir,$file['name'][$for_i]);
           }else
           {
             return array(false,'move_uploaded_file 移动文件失败,可能是没有写['.$file_dir.'/'.$file_name.']的权限!');
           }
      }
    }else
    {
      if ($file["error"] == 4) break;//未选择文件
     
      if ($file["error"] > 0)
      {
        return array(false,$error_a[$file["error"]]);
      }
 
      if ($file["size"] / 1048576 > $file_max_size)
      {
        return array(false,"文件超过 $file_max_size M!");
      }
     
      if (!in_array($file["type"],$file_type))
      {
        return array(false," {$file["type"]} 类型禁止上传!");
      }
     
      $file_name = $file_name?$file_name:preg_replace('/^.+/.|^.+$/',md5(time()+count($re_array)).'.',$file['name']);
      if (@move_uploaded_file($file["tmp_name"],$file_dir.'/'.$file_name))
      {
        $re_array[count($re_array)] = array($file_name,$file_dir,$file['name']);
      }else
      {
        return array(false,'move_uploaded_file  移动文件失败,可能是没有写['.$file_dir.'/'.$file_name.']的权限!');
      }     
    }
  }
 
  if (count($re_array) == 0) return array(false,false);
  return array(true,'上传成功',$re_array);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值