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

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接收页面代码

<?php
header("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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值