首页 >后端开发 >php教程 >php上传文件并创建递归目录的例子

php上传文件并创建递归目录的例子

WBOY
WBOY原创
2016-07-25 08:57:34897浏览
  1. /**

  2. * 上传文件 创建递归目录
  3. * edit:bbs.it-home.org
  4. */
  5. $uid=$_REQUEST['uid'];
  6. $avatar = 'D:/www/discuz/uc_server/data/avatar/'.get_avatar($uid, $size, $type);
  7. $dir=dirname($avatar);
  8. //创建目录成功后移动临时文件

  9. if(mkdirs($dir)){
  10.   if($_FILES["pic"]["error"] >= 0){
  11.     if(move_uploaded_file($_FILES['pic']['tmp_name'],$avatar)){
  12.       $errorcode=1;
  13.     }else{
  14.       $errorcode=0;
  15.       $errormsg="文件移动失败";
  16.     }
  17.   }else{
  18.     $errorcode=0;
  19.     $errormsg=$_FILES['pic']['error'];
  20.   }
  21. }
  22. $back=array("errorcode"=>$errorcode,'errormsg'=>$errormsg);
  23. echo json_encode($back);
  24. //返回图片要存储的路径

  25. function get_avatar($uid, $size = 'middle', $type = '') {
  26.   $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  27.   $uid = abs(intval($uid));
  28.   $uid = sprintf("%09d", $uid);
  29.   $dir1 = substr($uid, 0, 3);
  30.   $dir2 = substr($uid, 3, 2);
  31.   $dir3 = substr($uid, 5, 2);
  32.   $typeadd = $type == 'real' ? '_real' : '';
  33.   return $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg";
  34. }
  35. //递归创建目录,若传的$dir不是绝对路径,则和运行此方法的目录同级

  36. function mkdirs($dir){
  37.   if(!is_dir($dir)){
  38.     if(!mkdirs(dirname($dir))){
  39.       return false;
  40.     }
  41.    if(!mkdir($dir,0777)){
  42.       return false;
  43.     }
  44.    }
  45. return true;
  46. }
  47. ?>
复制代码


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn