0

这是我的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 很简单,只需输入 type = file 并输入标题的文本类型

4

2 回答 2

3

您需要使用新文件夹/$title

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$title."/".$_FILES["file"]["name"]);
于 2013-08-22T15:09:14.920 回答
0

正如上面@Grim 所指出的,您的路径中缺少斜线。我想解释一下原因:

echo "Stored in: " ."upload/".$title . $_FILES["file"]["name"];
                                  --^

将其更改为以下内容应该可以解决问题:

echo "Stored in: " ."upload/".$title . "/" . $_FILES["file"]["name"];

您的路径不正确,move_uploaded_file将无法在指定路径中找到文件,您的代码将无法按预期工作。

如果没有斜线,这就是你的函数的实际样子(假设你在两者之间的某个地方定义了 $title 变量):

upload/fooFilename

你实际上需要:

upload/foo/Filename

希望这可以帮助!

于 2013-08-22T15:20:06.620 回答