文件不会通过PHP上传到localhost

时间:2012-07-11 14:39:35

标签: php html

我无法使用PHP将文件上传到localhost。我创建了简单的html表单和php脚本。但是我收到这些错误消息。

'import.html'

<html>
    <body>
        <form action="import.php" method="POST" enctype="multipart/form-data">
            <p>
                <label for="file">Choose import.xml</label><br/>
                <input type="file" name="import" id="import" /></p>
            <p><input type="submit" name="submit" value="Submit" /></p>
        </form>
    <body>
</html>

'import.php'

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

        if (file_exists("upload/" . $_FILES["import"]["name"]))
        {
            echo $_FILES["import"]["name"] . " already exists. ";
        }
        else
        {
            move_uploaded_file($_FILES["import"]["tmp_name"],
            "upload/" . $_FILES["import"]["name"]);
            echo "Stored in: " . "upload/" . $_FILES["import"]["name"];
        }
    }

?>

错误讯息:

  

警告:move_uploaded_file(upload / import.xml)   [function.move-uploaded-file]:无法打开流:没有这样的文件或   第20行的C:\ xampp \ htdocs \ teecom \ admin \ import.php中的目录

     

警告:move_uploaded_file()[function.move-uploaded-file]:无法执行   将'C:\ Windows \ Temp \ phpD02C.tmp'移到'upload / import.xml'中   第20行的C:\ xampp \ htdocs \ teecom \ admin \ import.php存储于:   上传/ import.xml

4 个答案:

答案 0 :(得分:2)

看起来你正在使用Windows。

如果可能,我会将目标路径从相对路径更改为绝对路径。例如:

move_uploaded_file($_FILES["import"]["tmp_name"],
            "C:/upload/" . $_FILES["import"]["name"]);

或尝试路径:

$_SERVER['DOCUMENT_ROOT'] . '/upload/' . $_FILES['import']['name']

在尝试上传之前,首先尝试创建C:\ upload \或C:\ xampp \ htdocs \ upload \目录。

答案 1 :(得分:1)

嗯,根据您的localhost目录,您可以尝试:

if (!file_exists("teecom/upload"))
{
    mkdir("teecom/upload", 0777, true);
}
if (file_exists("teecom/upload/" . $_FILES["import"]["name"]))
{
    echo $_FILES["import"]["name"] . " already exists. ";
}
else
{
    move_uploaded_file($_FILES["import"]["tmp_name"],
    "teecom/upload/" . $_FILES["import"]["name"]);
    echo "Stored in: " . "upload/" . $_FILES["import"]["name"];
}

答案 2 :(得分:0)

您的文件显然没有上传到move_uploaded_file函数应该移动它的临时文件夹。有很多原因可能导致最常见的原因是您没有对PHP正在使用的临时文件夹的写权限。

答案 3 :(得分:0)

这是旧的,但对于将来遇到此问题的人,我为localhost(wamp)所做的就是单击服务器图标,转到PHP,PHP设置,然后选择文件上载。

这对我有用。