//支持创建多级目录
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"));
}
?>
上传文件