欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-21 08:55:58
...
  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. ?>
复制代码