文章介绍了
php 上传文件,创建递归目录的实例代码,有需要的朋友可以参考一下
代码如下
:
<?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;
}
}