php文件上传并移动到文件夹

php文件上传并移动到文件夹,php,file-upload,Php,File Upload,这是我的php代码 <?php if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $

这是我的php代码

<?php
    if ($_FILES["file"]["error"] > 0)
    {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

        if (file_exists("upload/" . $_FILES["file"]["name"]))
        {
            echo $_FILES["file"]["name"] . " already exists. ";
        }
        else
        {
            mkdir("upload/".$title, 0700);
            move_uploaded_file($_FILES["file"]["tmp_name"],
            "upload/".$title . $_FILES["file"]["name"]);
            echo "Stored in: " ."upload/".$title . $_FILES["file"]["name"];
        }
    }
?> 

根据W3C的简单文件上传,但是我添加了mkdir以根据用户输入的标题创建目录

文件夹创建得很好,但文件不会移动到其中,我不确定这是否是我认为简单的事情,但使用了连接“.”我可以像使用mkdir一样定义文件位置


HTML很简单,只需输入类型=文件和输入标题的文本类型

要使用新文件夹,您需要在
$title
之后添加
/

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$title."/".$_FILES["file"]["name"]);

要使用新文件夹,您需要在
$title
之后添加
/

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$title."/".$_FILES["file"]["name"]);

正如上面@Grim所指出的那样,你的道路上少了一条斜线。我想解释一下原因:

echo "Stored in: " ."upload/".$title . $_FILES["file"]["name"];
                                  --^
将其更改为以下选项可以解决此问题:

echo "Stored in: " ."upload/".$title . "/" . $_FILES["file"]["name"];
您的路径不正确,
move\u uploaded\u file
将无法在指定路径中找到该文件,并且您的代码将无法正常工作

如果没有斜杠,函数实际上就是这样的(假设您在两者之间定义$title变量):

您实际上需要:

upload/foo/Filename

希望这有帮助

正如上面@Grim所指出的,你的道路上少了一条斜线。我想解释一下原因:

echo "Stored in: " ."upload/".$title . $_FILES["file"]["name"];
                                  --^
将其更改为以下选项可以解决此问题:

echo "Stored in: " ."upload/".$title . "/" . $_FILES["file"]["name"];
您的路径不正确,
move\u uploaded\u file
将无法在指定路径中找到该文件,并且您的代码将无法正常工作

如果没有斜杠,函数实际上就是这样的(假设您在两者之间定义$title变量):

您实际上需要:

upload/foo/Filename

希望这有帮助

我假设定义了
$title
的位置,您正在解析它以删除文件夹名称中不允许使用的字符?感谢您的提醒,我甚至没有想到,我只是取出用户输入并将其存储在变量中,您刚刚帮我省去了以后的麻烦,再次感谢您。一定要接受答案!我假设定义了
$title
的位置,您正在解析它以删除文件夹名称中不允许使用的字符?感谢您的提醒,我甚至没有想到,我只是取出用户输入并将其存储在变量中,您刚刚帮我省去了以后的麻烦,再次感谢您。一定要接受答案!感谢它“upload/”$title./”。请注意,
if file_exists
语句也需要
$title
变量。感谢它“upload/”$title./”。请注意,
if file_exists
语句也需要
$title
变量。更改echo并不能解决问题(虽然这样做会使那一行更准确)。我在屏幕上显示查询变量或其他东西来调试它时,不断地更改错误的内容,这让我发疯!更改echo不会解决问题(尽管这样做会使那一行更准确).当我在屏幕上显示查询变量或其他东西来调试它时,我不断地更改错误的东西-让我发疯!