在Php上传照片

时间:2014-07-26 10:14:33

标签: php html file-upload

我一直在尝试使用Php进行照片上传。我在提交时看到的是,页面无限加载。

最终结果照片未上传到目录。

以下是HTML代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Photo Upload</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file"><br>
            <input type="submit" name="submit" value="Submit">
        </form>
    </body>
</html>

Php脚本:

    <style>
    .sucess{
        color:#088A08;
    }
    .error{
        color:red;
    }
</style>

<?php
$file_exts = array("jpg", "bmp", "jpeg", "gif", "png");
$upload_exts = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg")
        || ($_FILES["file"]["type"] == "image/png")
        || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 2000000)
    && in_array($upload_exts, $file_exts))
{
    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>";
// Enter your path to upload file here
        if (file_exists("uploads/" .
            $_FILES["file"]["name"]))
        {
            echo "<div class='error'>"."(".$_FILES["file"]["name"].")".
                " already exists. "."</div>";
        }
        else
        {
            move_uploaded_file($_FILES["file"]["tmp_name"],
                "uploads/" . $_FILES["file"]["name"]);
            echo "<div class='sucess'>"."Stored in: " .
                "uploads/" . $_FILES["file"]["name"]."</div>";
        }
    }
}
else
{
    echo "<div class='error'>Invalid file</div>";
}
?>

我已从Here获取此代码示例。

我无法理解这里出了什么问题,但我认为它与路径有关,但我不确定。

一些帮助将不胜感激。

*我已对代码进行了编辑,并将其更改为&#39;上传/&#39; 。 它现在有效!

3 个答案:

答案 0 :(得分:1)

看到你指的是C:\\Users\\Priyabrata\\PhpstormProjects\\FileUpload/uploads/。也许这会导致问题。

将其替换为您使用的实际服务器链接..

答案 1 :(得分:1)

我已经尝试过你的代码,它对我来说很好用(因为我在Ubuntu上使用了不同的路径)。尝试指定没有双斜线的路径。 (就像您提供的示例链接一样)。还要确保该文件夹存在;)

答案 2 :(得分:1)

我检查了它使用相对路径而不是绝对路径然后在本地或服务器中工作的环境没有问题

例如:而不是这个C:\ Users \ Priyabrata \ PhpstormProjects \ FileUpload / uploads /

使用uploads /

它会起作用

当您在服务器上托管它时,某些托管服务提供商将无法提供访问权限,因此您必须将文件夹权限更改为可写,并且它将保持欢呼