PHP:将上传的文件移动到动态创建的路径

PHP:将上传的文件移动到动态创建的路径,php,actionscript-3,Php,Actionscript 3,在这段PHP代码中,我将上传一个文件(从AS3发送)到一个已经为每个用户名相同的用户创建的目录。问题是我不知道如何将文件移动到与用户关联的文件夹中。如果用户没有自己的文件夹,一些代码应该能够从$\u会话['myusername']中获取用户名,然后动态创建它,然后移动文件: <?php session_start(); $username =$_SESSION['myusername']; $uploads_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/

在这段PHP代码中,我将上传一个文件(从AS3发送)到一个已经为每个用户名相同的用户创建的目录。问题是我不知道如何将文件移动到与用户关联的文件夹中。如果用户没有自己的文件夹,一些代码应该能够从$\u会话['myusername']中获取用户名,然后动态创建它,然后移动文件:

<?php
session_start();
$username =$_SESSION['myusername'];
$uploads_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/'.'/$username/';
if ( ! is_dir($uploads_dir)) {
    mkdir($uploads_dir); 
}  

if( $_FILES['Filedata']['error'] == 0 ){
    if( move_uploaded_file( $_FILES['Filedata']['tmp_name'],
         $uploads_dir.$_FILES['Filedata']['name'] ) ){
        exit();
    }
}
echo 'error';
exit();
?>


但此代码将文件移动到“upload”目录中,如果上传的文件名为xxx,则文件名更改为xxx$username。你怎么能这样做

如果您的想法正确,只需将文件名添加到路径的末尾,例如:

$uploads_dir = "upload/".$username."/".$_FILES['Filedata']['name']
然后像这样使用
move\u uploaded\u file()

move_uploaded_file( $_FILES['Filedata']['tmp_name'],
         $uploads_dir )
此外,最好先使用
文件\u exists()
确认目录是否存在。
我还发现
move\u uploaded\u file()
喜欢目的地的完整路径,您可以使用
$\u SERVER[DOCUMENT\u ROOT]
来获取此文件。谢谢。但是文件仍然进入上载目录,而不是特定的用户目录,并且只更改了文件名。好的,我已经创建了目录并测试了您所说的内容。另一方面,请注意任何路径中的空格如果它们仍然进入“upload”(上传)目录并使用用户名作为文件名,那么您很可能缺少反斜杠…请验证您发送到move_uploaded_files()的目标路径在你打电话之前对不起,我不明白你的意思是什么?我尝试了很多,但都没有成功。你似乎有正确的方法,没有代码在我面前,我所能建议的就是确保并使用完整路径(在$\u服务器['DOCUMENT\u ROOT'上附加)到dest路径的开头。确保任何路径中都没有空格,最后验证您是否具有实际创建目录并写入该目录的权限。如果所有这些都已处理完毕,并且仍然无法正常工作,则会出现其他问题。。。