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学习之数据类型之间的转换代码
May 29 PHP
基于PHP对XML的操作详解
Jun 07 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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设计模式 Facade(外观模式)
2011/06/26 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
django中send_mail功能实现详解
2018/02/06 Python
python进行两个表格对比的方法
2018/06/27 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
学生周末长期请假条
2014/02/15 职场文书
绿色环保演讲稿
2014/05/10 职场文书
转变工作作风心得体会
2016/01/23 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
iPhone13将有八大升级
2021/04/15 数码科技
python脚本框架webpy模板赋值实现
2021/11/20 Python
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
Java实现带图形界面的聊天程序
2022/06/10 Java/Android