Php 上载到新创建的目录
我有一个名为“文件”的目录,其中包含代表用户上载空间的文件夹,例如Php 上载到新创建的目录,php,mysql,session,mkdir,subdirectory,Php,Mysql,Session,Mkdir,Subdirectory,我有一个名为“文件”的目录,其中包含代表用户上载空间的文件夹,例如files/14,其中“14”是用户的用户ID 我正在尝试创建一个简单的脚本,当上传文件时,该脚本: 检查用户的文件夹是否已存在 如果用户文件夹不存在,请使用UserID创建一个,否则忽略并继续 将文件上载到新创建的目录(例如14)或上载到以前创建的用户目录 代码如下: <?php include("dbConfig.php"); $Username = $_SESSION["username"];
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>";
}
}
}
?>
有人能帮我解决这个问题吗?两个调用使用相同的结构如何 例如:
if (!file_exists("../files/" .$filename)) {
mkdir("../files/" .$filename, 0775);
您似乎正在检查一只手上是否存在一个文件/文件夹,并在。/files
!=<代码>文件/
导航也是正确的,您应该停止使用相对路径。保证未来的问题。特别是如果您使用一些框架和url重写。IMHO,我认为您应该停止在这里使用相对路径。请改用绝对路径。不要使用绝对路径!从未!在windows上,它工作,在实时网站上,在linux下,而不是!因为url是绝对的,所以它被视为非本地地址,您将无法上载或保存文件。谢谢!警告消失,但是,没有上载任何文件:(那么您可能有一些路径问题。很难使用该部分来帮助。但通常情况下,移动上载的文件需要完整路径:c:\path\to\upload\to或/var/www/path/to/upload/to
if (!file_exists("../files/" .$filename)) {
mkdir("../files/" .$filename, 0775);