Php 如果不存在,则创建目录,否则移动文件

Php 如果不存在,则创建目录,否则移动文件,php,wordpress,Php,Wordpress,我有以下代码来上传文件: <?php //set the image size in mb $max_upload_size='10'; $MAXIMUM_FILESIZE = $max_upload_size * 1024 * 1024; get_current_user(); global $current_user; $uploaddir = './uploads/file/'.$current_user->user_login.'/'; $file = $uploaddir

我有以下代码来上传文件:

<?php
//set the image size in mb
$max_upload_size='10';
$MAXIMUM_FILESIZE = $max_upload_size * 1024 * 1024;
get_current_user();
global $current_user;
$uploaddir = './uploads/file/'.$current_user->user_login.'/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 
if ($_FILES['uploadfile']['size']<$MAXIMUM_FILESIZE) {
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
    echo "error";
}
}else{
    echo"size_error";
}
?>

如果用户登录名已经存在于/uploads/file/directory下,那么这种方法非常有效。如果变量$current\u user->user\u login不存在,如何创建基于该变量的目录?如果存在,则继续执行下一个代码。


  <?php
//set the image size in mb
$max_upload_size='10';
$MAXIMUM_FILESIZE = $max_upload_size * 1024 * 1024;
get_current_user();
global $current_user;
if(!is_dir('./uploads/file/'.$current_user->user_login))
{
   mkdir('./uploads/file/'.$current_user->user_login);
}
$uploaddir = './uploads/file/'.$current_user->user_login.'/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 
if ($_FILES['uploadfile']['size']<$MAXIMUM_FILESIZE) {
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
    echo "error";
}
}else{
    echo"size_error";
}
    ?>
或者在$updloaddir初始化之后,在
中带有$uploaddir参数的add if语句是\u dir()
mkdir()


或者在$updloaddir初始化之后,在
中带有$uploaddir参数的add if语句是\u dir()
mkdir()
来自:

目标目录必须存在;move_uploaded_file()不会自动为您创建它

只要使用和使用


来自:

目标目录必须存在;move_uploaded_file()不会自动为您创建它

只要使用和使用



我试过了,但没能成功。这是我的示例代码:
if(file_exists($uploaddir)&&is_dir($uploaddir)){mkdir(“./uploads/file/$current_user->user_login”,0777);}
Why-1?这是一个有效的问题。我试过了,但我无法让它起作用。这是我的示例代码:
if(file_exists($uploaddir)&&is_dir($uploaddir)){mkdir(“./uploads/file/$current_user->user_login”,0777);}
Why-1?这是一个有效的问题。似乎move\u uploaded\u文件返回true,但文件夹未成功创建。请运行此脚本。这可能会有帮助。如果该文件夹不存在,它会给你一条“创建文件夹时出错”的消息。可能是它在不同的目录中创建的。但我不知道它在哪里。完整路径是基于我的cPanel:public_html/wp content/themes/my theme/upload/uploads/file。所以你的
$uploaddir
变量应该是
/upload/uploads/file/
,也许吧?我不这么认为,因为上面的代码位于名为upload-file.php的public_html/wp content/themes/my theme/upload文件夹下。此文件由ajax代码调用,如
action:'/upload file.php',
is move\u upload\u file返回true,但文件夹未成功创建。运行此脚本。这可能会有帮助。如果该文件夹不存在,它会给你一条“创建文件夹时出错”的消息。可能是它在不同的目录中创建的。但我不知道它在哪里。完整路径是基于我的cPanel:public_html/wp content/themes/my theme/upload/uploads/file。所以你的
$uploaddir
变量应该是
/upload/uploads/file/
,也许吧?我不这么认为,因为上面的代码位于名为upload-file.php的public_html/wp content/themes/my theme/upload文件夹下。此文件由ajax代码调用,如
action:'/upload file.php',
<?php
//set the image size in mb
$max_upload_size='10';
$MAXIMUM_FILESIZE = $max_upload_size * 1024 * 1024;
global $current_user;
$current_user = get_current_user();
$uploaddir = './uploads/file/'.$current_user->user_login.'/';
if (!is_dir($uploaddir) && !mkdir($uploaddir)){
  die("Error creating folder $uploaddir");
}
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 
if ($_FILES['uploadfile']['size']<$MAXIMUM_FILESIZE) {
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
    echo "error";
}
}else{
    echo"size_error";
}
?>