zoukankan      html  css  js  c++  java
  • php上传文件,创建递归目录

    <?php

    $uid=$_REQUEST['uid'];

    $avatar = 'D:/avic/discuz/uc_server/data/avatar/'.get_avatar($uid, $size, $type);
    $dir=dirname($avatar);

    //创建目录成功后移动临时文件
    if(mkdirs($dir)){
      if($_FILES["pic"]["error"] >= 0){
        if(move_uploaded_file($_FILES['pic']['tmp_name'],$avatar)){
          $errorcode=1;
        }else{
          $errorcode=0;
          $errormsg="文件移动失败";
        }
      }else{
        $errorcode=0;
        $errormsg=$_FILES['pic']['error'];
      }
    }
    $back=array("errorcode"=>$errorcode,'errormsg'=>$errormsg);
    echo json_encode($back);

    //返回图片要存储的路径
    function get_avatar($uid, $size = 'middle', $type = '') {
      $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
      $uid = abs(intval($uid));
      $uid = sprintf("%09d", $uid);
      $dir1 = substr($uid, 0, 3);
      $dir2 = substr($uid, 3, 2);
      $dir3 = substr($uid, 5, 2);
      $typeadd = $type == 'real' ? '_real' : '';
      return $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg";
    }
    //递归创建目录,若传的$dir不是绝对路径,则会和运行此方法的目录同级
    function mkdirs($dir){
      if(!is_dir($dir)){
        if(!mkdirs(dirname($dir))){
          return false;
        }
       if(!mkdir($dir,0777)){
          return false;
        }
       }
    return true;
    }
    ?>

  • 相关阅读:
    洛谷P4315 月下“毛景树”(边权维护)
    Water Tree CodeForces
    P3384 【模板】树链剖分
    Codeforces 161D Distance in Tree(树的点分治)
    git命令及使用方法
    vue下拉刷新,下拉加载更多
    Vue中 v-for 生成样式并默认选中第一个样式
    js面向对象实现分页版轮播图
    js面向对象实现购物车
    js面向对象实现放大镜
  • 原文地址:https://www.cnblogs.com/efan/p/3376479.html
Copyright © 2011-2022 走看看