我有一个名为“文件”的目录,其中包含代表用户上传空间的文件夹,例如files/14
,“14”是用户的用户 ID。
我正在尝试创建一个简单的脚本,当文件上传时,脚本:
- 检查用户的文件夹是否已经存在
- 如果用户文件夹不存在,则使用 UserID 创建一个,否则忽略并继续
- 将文件上传到新创建的目录(例如 14)或上传到之前创建的用户目录。
这是代码:
<?php
include("dbConfig.php");
$Username = $_SESSION["username"];
global $userid;
$Password = $_SESSION["password"];
$Password = md5($Password);
$sql = "SELECT UserID FROM users WHERE Username = '".$Username."'";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$userid = $row['UserID'];
}
$dirname = (string)$userid;
$filename = ("$dirname" . "/");
if (!file_exists("../files/" .$filename)) {
mkdir("files/$dirname", 0775);
} else {
if (isset($_FILES['files'])) {
echo "<div id='files_table'><table class='center'.><tr><td>";
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name) {
$dest = ($filename . "{$_FILES['files']['name'][$key]}");
move_uploaded_file($tmp_name, $dest );
echo $_FILES['files']['name'][$key], " uploaded.", "<br>";
}
}
}
?>
尽管正在创建用户目录,但文件正在上传到根目录 (../files)。
此外,警告没有被忽略,给我这个错误:
**Warning: mkdir(): File exists in C:\xampp\htdocs\Task2PHP\final\upload.php on line 80**
谁能帮助我并告诉我如何解决这个问题?