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

时间:2013-10-01 19:08:44

标签: php actionscript-3

在这个PHP代码中,我将上传一个文件(从AS3发送)到一个目录,该目录已经为每个用户创建了同名用户名。问题是我不知道如何将文件移动到与用户关联的文件夹中。如果用户没有自己的文件夹,某些代码应该能够从$ _SESSION ['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。怎么能这样做?

1 个答案:

答案 0 :(得分:1)

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

$uploads_dir = "upload/".$username."/".$_FILES['Filedata']['name']

然后像这样使用move_uploaded_file()

move_uploaded_file( $_FILES['Filedata']['tmp_name'],
         $uploads_dir )

此外,最好继续使用file_exists()确保目录存在。 我还发现move_uploaded_file()喜欢目的地的完整路径,您可以使用$_SERVER[DOCUMENT_ROOT]来获取此