0

在这个 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();
?>

但是此代码将文件移动到“上传”目录,如果上传的文件名为 xxx,则文件名更改为 xxx$username。请问这个怎么做?

4

1 回答 1

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]来获取

于 2013-10-01T19:12:35.170 回答