一个简单的PHP文件上传方法

这是我自己写的一个文件上传函数,主要是做一些企业类网站的时候经常会用到上传图片,呵,我就写了这么一个函数,希望各位高手提出您们的宝贵意见!

  1. /************文件上传函数******************/   
  2. /*   
  3. *$formname                       Html上传表单名称   
  4. *$allowtype_array                允许上传的文件类型数组   
  5. *$allow_size                     允许上传的文件最大大小,默认是1MB   
  6. *$isRename                       是否需要重命名被上传的文件   
  7. */   
  8. function upload_file($formname,$path,$allowtype_array,$allow_size='1048576',$isRename=true){   
  9.  if($_FILES[$formname]['tmp_name']=='' || $_FILES[$formname]['name']=='' || $_FILES[$formname]['size']==0){   
  10.   return false;   
  11.  }   
  12.  if(!file_exists('../uploadfiles/'.$path)){   
  13.   if(!mkdir('../uploadfiles/'.$path,0777)){   
  14.    WriteErrMsg('创建上传文件保存文件目录失败,请联系管理员检查目录权限');   
  15.   }   
  16.  }   
  17.  if($_FILES[$formname]['size']>$allow_size){   
  18.   WriteErrMsg('上传文件过大,请将上传文件限制在'.number_format($allow_size/1048576,'2','.','').'MB以内');   
  19.  }   
  20.  $file_name_array=explode('.',$_FILES[$formname]['name']);   
  21.  $file_type=strtolower($file_name_array[count($file_name_array)-1]);   
  22.  if(!in_array($file_type,$allowtype_array)){   
  23.   WriteErrMsg('上传文件类型错误,仅允许上传后缀名为 .'.implode(' .',$allowtype_array).'的文件');   
  24.  }   
  25.  $save_name=$isRename?randomname().'.'.$file_type:$_FILES[$formname]['name'];   
  26.  if(!move_uploaded_file($_FILES[$formname]['tmp_name'],'../uploadfiles/'.$path.'/'.$save_name)){   
  27.   WriteErrMsg('文件上传过程中发生错误,请重新上传');   
  28.  }   
  29.  switch($_FILES[$formname]['error']){   
  30.   case 0:   
  31.    return $save_name;   
  32.   break;   
  33.   case 1:   
  34.    WriteErrMsg('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');   
  35.   break;   
  36.   case 2:   
  37.    WriteErrMsg('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');   
  38.   break;   
  39.   case 3:   
  40.    WriteErrMsg('文件只有部分被上传');   
  41.   break;   
  42.    case 4:   
  43.    WriteErrMsg('没有文件被上传');   
  44.   break;   
  45.   default:   
  46.    WriteErrMsg('能出现这条错误提示,日子也该混到头了');   
  47.   break;   
  48.  }   

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Grow your business fast with

Suku