A-A+

php实现文件上传基本验证

2022年02月18日 我爱编程 暂无评论

这篇文章主要为大家详细介绍了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.  function gettypes($a){
  27.   $array=array(jpg,png,txt);
  28.  $b=in_array($a,$array);
  29.  return $b;
  30.  }
  31.   if($limitsize>=$size){
  32.   if(gettypes($a)){
  33.   if($error==0){
  34.    if (is_uploaded_file($tmp_name)) {
  35.     //将服务器上的临时文件移动到指定目录
  36.     $filename=$filenamemd5.".".getExt($filename);
  37.     $destination="uploads/".$filename;
  38.     if(move_uploaded_file($tmp_name$destination)){
  39.     //检测这个临时文件是否为post方式
  40.     //返回镇或者假
  41.     echo $filename."---"."文件上传成功";
  42.    }else{
  43.    echo "你不是post上传的,非法操作";
  44.    }
  45.   }else{
  46.    echo "{$filename}文件移动失败";
  47.   }
  48.   }else{
  49.    switch ($error) {
  50.    case 1:
  51.     echo "超过php配置文件upload_max_filesize的值";
  52.     break;
  53.    case 2:
  54.     echo "超过表单max_file_size的值";
  55.     break;
  56.    case 3:
  57.     echo "部分文件被上传";
  58.     break;
  59.    case 4:
  60.     echo "没有文件被上传";
  61.     break;
  62.    case 6:
  63.    case 7:
  64.     echo "未知错误";
  65.    }
  66.   }
  67.   }else{
  68.   echo "只能上传图片";
  69.   }
  70.  }else{
  71.   echo "超出上传文件大小限制";
  72.  }
  73.  ?>

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录