php文件上传创建目录,php上传文件 创建多级目录

//支持创建多级目录

function make_dir($folder)

{

$reval = false;

if (!file_exists($folder))

{

@umask(0);

preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);

$base = ($atmp[0][0] == '/') ? '/' : '';

foreach ($atmp[1] AS $val)

{

if ('' != $val)

{

$base .= $val;

if ('..' == $val || '.' == $val)

{

$base .= '/';

continue;

}

}

else

{

continue;

}

$base .= '/';

// echo $base."
";

if (!file_exists($base))

{

if (@mkdir(rtrim($base, '/'), 0777))

{

@chmod($base, 0777);

$reval = true;

}

}

}

}

else

{

$reval = is_dir($folder);

}

clearstatcache();

return $reval;

}

function upload_file($formname, $path, $allowtype_array, $allow_size = '1048576', $isRename = true) {

if ($_FILES [$formname] ['tmp_name'] == '' || $_FILES [$formname] ['name'] == '' || $_FILES [$formname] ['size'] == 0) {

return false;

}

//创建多几目录,比如在uploadfiles下创建为$path值的目录

if (! make_dir ( './uploadfiles/' . $path)) {

WriteErrMsg ( '创建上传文件保存文件目录失败,请联系管理员检查目录权限' );

}

if ($_FILES [$formname] ['size'] > $allow_size) {

WriteErrMsg ( '上传文件过大,请将上传文件限制在' . number_format ( $allow_size / 1048576, '2', '.', '' ) . 'MB以内' );

}

$file_name_array = explode ( '.', $_FILES [$formname] ['name'] );

$file_type = strtolower ( $file_name_array [count ( $file_name_array ) - 1] );

if (! in_array ( $file_type, $allowtype_array )) {

WriteErrMsg ( '上传文件类型错误,仅允许上传后缀名为 .' . implode ( ' .', $allowtype_array ) . '的文件' );

}

$save_name = $isRename ? randomname () . '.' . $file_type : $_FILES [$formname] ['name'];

if (! move_uploaded_file ( $_FILES [$formname] ['tmp_name'], './uploadfiles/' . $path . '/' . $save_name )) {

WriteErrMsg ( '文件上传过程中发生错误,请重新上传' );

}

switch ($_FILES [$formname] ['error']) {

case 0 :

return $save_name;

break;

case 1 :

WriteErrMsg ( '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值' );

break;

case 2 :

WriteErrMsg ( '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值' );

break;

case 3 :

WriteErrMsg ( '文件只有部分被上传' );

break;

case 4 :

WriteErrMsg ( '没有文件被上传' );

break;

default :

WriteErrMsg ( '能出现这条错误提示,日子也该混到头了' );

break;

}

}

function WriteErrMsg($msg)

{

echo $msg;die();

}

function randomname()

{

return date("Y-m-d-H-i-s");

}

if($_POST['max_file_size'])

{

upload_file("userfile","upTxt",array("txt"));

}

?>

上传文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值