上传图片类型限制和防止反复提交,php递归删除空文件夹

来源:互联网 发布:讲课视频软件 编辑:程序博客网 时间:2024/06/05 07:54

html代码

<html><meta charset="utf-8"><?php      session_start();    $bmcode = mt_rand(0,10000);    $_SESSION["bmcode"] = $bmcode;?><form action="ha.php"  method="post" enctype="multipart/form-data">      <!-- <input type="file" name="myphoto" />  -->     <input type="hidden" name="jiami" value="<?php echo $bmcode; ?>" >     <input type="file" name="myphoto" accept="image/jpeg" >     <input type="submit"  value="上传" /></form></html>

php接收页面代码

<?phpheader("content-type:text/html;charset=utf-8");session_start();if(isset($_SESSION["bmcode"])&&$_SESSION["bmcode"]==$_POST["jiami"]){     $file = $_FILES['myphoto'];    //得到传输的数据    //得到文件名称    // var_dump($file); die;    // var_dump($_FILES['myphoto']);    $name = $file['name'];    $type = strtolower(substr($name,strrpos($name,'.')+1)); //得到文件类型,并且都转化成小写    // $allow_type = array('jpg','jpeg','png'); //定义允许上传的类型    $allow_type = array('jpg','jpeg'); //定义允许上传的类型    //判断文件类型是否被允许上传    if(!in_array($type, $allow_type)){      //如果不被允许,则直接停止程序运行      echo "只允许jpg,照片不要大于400kb";      exit();    }    //判断是否是通过HTTP POST上传的    if(!is_uploaded_file($file['tmp_name'])){      //如果不是通过HTTP POST上传的      // echo "只允许post方式";      exit();    }    //后台限制上传大小 不大于400kb-409600字节    if($file["size"]>409600){     echo"照片文件过大,无法上传";     exit();    }    $thismonth = date("Y-m",time());    // $upload_path = "D:/baomingupload/".$thismonth; //上传文件保存路径 每个月一个文件    $upload_path = "D:/".$thismonth."/"; //上传文件保存路径 每个月一个文件    // echo $upload_path;die;    if(!file_exists($upload_path)){        mkdir($upload_path);    }    //开始移动文件到相应的文件夹    // echo "file tmp_name".$file['tmp_name']."和".$upload_path.$file['name']; die;        $filename = substr($file['name'], strrpos($file['name'],"."));    //把上传的图片改文件名         // echo $filename;    exit();    if(move_uploaded_file($file['tmp_name'],iconv("utf-8","gbk",$upload_path.time().$filename))){    // if(move_uploaded_file($file['tmp_name'],$upload_path.time())){      //   header("location:http://localhost/upload.php"); //上传成功跳转到成功页        echo "报名信息提交 成功!!";         unset($_SESSION["bmcode"]) ;    }else{      echo "报名信息提交 失败!!";    }/**如果session存在 而且正确**/}else{    echo"已经提交成功,不需要再次提交";} 
php递归删除空文件夹步骤:1.遍历目录及子目录2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除。<?php  /** 删除所有空目录 * @param String $path 目录路径 */  function rm_empty_dir($path){      if(is_dir($path) && ($handle = opendir($path))!==false){          while(($file=readdir($handle))!==false){     // 遍历文件夹              if($file!='.' && $file!='..'){                  $curfile = $path.'/'.$file;          // 当前目录                  if(is_dir($curfile)){                // 目录                      rm_empty_dir($curfile);          // 如果是目录则继续遍历                      if(count(scandir($curfile))==2){ // 目录为空,=2是因为. 和 ..存在                          rmdir($curfile);             // 删除空目录                      }                  }              }          }          closedir($handle);      }  }  $folder = '目标文件夹';  rm_empty_dir($folder);  ?>  
0 0
原创粉丝点击