当前位置:首页 > PHP教程 > php上传下载 > 列表

php实现文件上传基本验证

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-17 12:11:13 浏览: 评论:0 

这篇文章主要为大家详细介绍了php实现文件上传基本验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

本文实例为大家分享了php实现文件上传基本验证的具体代码,供大家参考,具体内容如下。

Html部分

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head> 
  4.  <meta charset="UTF-8"> 
  5.  <title>文件上传</title> 
  6. </head> 
  7. <body> 
  8.  <form action="doupload.php" method="post" enctype="multipart/form-data"> 
  9.  <input type="file" name="myFile"/> 
  10.  <input type="hidden" name="MAX_FILE_SIZE" value="1024"> 
  11.  <!-- <input type="hidden" name="MAX_FILE_SIZE" value="1024">通过建立隐藏域来控制文件上传的大小 
  12.  在页面上进行判断,value是1024kb,这是客户端上设置的限制,最好是服务器做限制 --> 
  13.  <input type="submit" value="上传"/> 
  14.  </form> 
  15. </body> 
  16. </html> 

PHP服务端部分

  1. <?php  
  2. header("Content-type: text/html; charset=utf-8");  
  3.  //预定义变量 
  4.  //print_r($_FILES);//可以显示错误号,根据错误号来定位错误信息 
  5.  $filename=$_FILES['myFile']['name']; 
  6.  $type=$_FILES['myFile']['type']; 
  7.  $tmp_name=$_FILES['myFile']['tmp_name'];//存储地址 
  8.  $error=$_FILES['myFile']['error'];//错误类型 
  9.  $size=$_FILES['myFile']['size'];//文件大小 
  10.  $filenamemd5=getUniName($filename); 
  11.  // $types="jpg";//只能上传图片 
  12.  $limitsize="185000";//控制图片大小 
  13.  $a=getExt($filename); 
  14.  //$getext=getExt($filename); 
  15.  //得到文件的扩展名 
  16.  function getExt($filename){ 
  17.  $first=explode(".",$filename); //文件名开始以.分割 
  18.  $ext=strtolower(end($first)); //取出数组中的最后一个数组进行返回 
  19.  return $ext
  20.  } 
  21.  //文件名以时间戳微秒md5加密的形式出现,确保文件的唯一 
  22.  function getUniName(){ 
  23.  return md5(microtime(true)); 
  24.  } 
  25.  //echo getUniName(); 返回md5加密的数值 
  26.  
  27.  function gettypes($a){ 
  28.   $array=array(jpg,png,txt); 
  29.  $b=in_array($a,$array); 
  30.  return $b
  31.  } 
  32.  
  33.   if($limitsize>=$size){ 
  34.   if(gettypes($a)){ 
  35.   if($error==0){ 
  36.    if (is_uploaded_file($tmp_name)) { 
  37.     //将服务器上的临时文件移动到指定目录 
  38.     $filename=$filenamemd5.".".getExt($filename); 
  39.     $destination="uploads/".$filename
  40.     if(move_uploaded_file($tmp_name$destination)){ 
  41.     //检测这个临时文件是否为post方式 
  42.     //返回镇或者假 
  43.     echo $filename."---"."文件上传成功"
  44.    }else
  45.    echo "你不是post上传的,非法操作"
  46.    } 
  47.   }else
  48.    echo "{$filename}文件移动失败"
  49.   } 
  50.   }else
  51.    switch ($error) { 
  52.    case 1: 
  53.     echo "超过php配置文件upload_max_filesize的值"
  54.     break
  55.  
  56.    case 2: 
  57.     echo "超过表单max_file_size的值"
  58.     break
  59.    case 3: 
  60.     echo "部分文件被上传"
  61.     break
  62.    case 4: 
  63.     echo "没有文件被上传"
  64.     break
  65.    case 6: 
  66.    case 7: 
  67.     echo "未知错误"
  68.    } 
  69.   } 
  70.   }else
  71.   echo "只能上传图片"
  72.   } 
  73.  }else
  74.   echo "超出上传文件大小限制"
  75.  } 
  76.  
  77.  ?>

Tags: php文件上传

分享到: