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


Posted in PHP onOctober 18, 2013
<?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;
}
?>
PHP 相关文章推荐
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
php 分库分表hash算法
Nov 12 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
php class类的用法详细总结
Oct 17 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
php类常量用法实例分析
Jul 09 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
基于PHP实现生成随机水印图片
Dec 09 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 #PHP
10 个经典PHP函数
Oct 17 #PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 #PHP
php class类的用法详细总结
Oct 17 #PHP
div li的多行多列 无刷新分页示例代码
Oct 16 #PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 #PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 #PHP
You might like
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
javascript Excel操作知识点
2009/04/24 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
Js 中debug方式
2010/02/07 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
替换python字典中的key值方法
2018/07/06 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
手术室护士自我鉴定
2013/10/14 职场文书
户外拓展活动方案
2014/02/11 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
疾病防治方案
2014/05/31 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang