在这个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。怎么能这样做?
答案 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]
来获取此