Chinaunix首页 | 论坛 | 博客
  • 博客访问: 449337
  • 博文数量: 141
  • 博客积分: 211
  • 博客等级: 入伍新兵
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-17 16:25
个人简介

如此经年,望尽千帆。

文章分类

全部博文(141)

文章存档

2014年(73)

2013年(65)

2012年(3)

我的朋友

分类: PHP

2013-12-15 08:25:02

php上传文件,创建递归目录的实例代码。

代码:
  1. <?php
  2. $uid=$_REQUEST['uid'];
  3. $avatar = 'D:/avic/discuz/uc_server/data/avatar/'.get_avatar($uid, $size, $type);
  4. $dir=dirname($avatar);
  5. //创建目录成功后移动临时文件
  6. //
  7. if(mkdirs($dir)){
  8.   if($_FILES["pic"]["error"] >= 0){
  9.     if(move_uploaded_file($_FILES['pic']['tmp_name'],$avatar)){
  10.       $errorcode=1;
  11.     }else{
  12.       $errorcode=0;
  13.       $errormsg="文件移动失败";
  14.     }
  15.   }else{
  16.     $errorcode=0;
  17.     $errormsg=$_FILES['pic']['error'];
  18.   }
  19. }
  20. $back=array("errorcode"=>$errorcode,'errormsg'=>$errormsg);
  21. echo json_encode($back);
  22. //返回图片要存储的路径
  23. function get_avatar($uid, $size = 'middle', $type = '') {
  24.   $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  25.   $uid = abs(intval($uid));
  26.   $uid = sprintf("%09d", $uid);
  27.   $dir1 = substr($uid, 0, 3);
  28.   $dir2 = substr($uid, 3, 2);
  29.   $dir3 = substr($uid, 5, 2);
  30.   $typeadd = $type == 'real' ? '_real' : '';
  31.   return $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg";
  32. }
  33. //递归创建目录,若传的$dir不是绝对路径,则会和运行此方法的目录同级
  34. function mkdirs($dir){
  35.   if(!is_dir($dir)){
  36.     if(!mkdirs(dirname($dir))){
  37.       return false;
  38.     }
  39.    if(!mkdir($dir,0777)){
  40.       return false;
  41.     }
  42.    }
  43. return true;
  44. }
  45. ?>
阅读(1232) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~