简体   繁体   中英

Uploading photo in Php

I've been trying to do a photo upload using Php. What I am seeing when I do a submit is, the page keeps loading infinitely.

End result the photo is not being uploaded to the directory.

Here is the HTML Code :

<!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 Script :

    <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>";
}
?>

I've taken this code sample from Here .

I cannot understand what is going wrong here, but I think it has something to do with the path, but I am not sure.

Some help will be appreciated.

*I've edited the code and changed it to 'uploads/' . It now works!

See you are reffering like C:\\\\Users\\\\Priyabrata\\\\PhpstormProjects\\\\FileUpload/uploads/ .Maybe this leads to the problem.

Replace it with the actual server link you use ..

I have tried your code and it works fine for me (I used different path since I am on Ubuntu). Try specifying your path without double slashes. (Like in the sample link you provided). Also make sure the folder exists ;)

I checked it out use Relative Path Instead of absolute path then there will be no problem which ever environment you are working in local or server

eg:Instead of this C:\\Users\\Priyabrata\\PhpstormProjects\\FileUpload/uploads/

Use uploads/

It will work

when you host it on server some hosting providers will not provide the access so you have to change the folder permissions to writable and it will work cheers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM