0

I'm trying to upload an image to a database using a form.

The problems is that when i try to upload the image, it isn't stored in the database. Also there is no error.

Thanks in advance.

<html>
<head>
    <meta charset="UTF-8" />
    <title>Images</title>
</head>
<body>
    <form action="index.php" method="POST" enctype="multipart/form-data">
        File:
        <input type="file" name="image" />
        <input type="submit" value="Upload" />
    </form>
    <?php
        require "connect.inc.php";
        @$file = $_FILES['image']['tmp_name'];

        if (!isset($file)) {
            echo "Please select an image.";
        }
        else {
            $image = file_get_contents($_FILES['image']['tmp_name']);
            $imageName = $_FILES['image']['tmp_name'];
            $imageSize = getimagesize($_FILES['image']['tmp_name']);

            if ($imageSize == FALSE) {
                echo "This is not an image.";
            }
            else {
                $sql = "INSERT INTO `afbeelding` VALUES ('', '$imageName', '$image')";
                if (!mysql_query("INSERT INTO `afbeelding` VALUES ('', '$imageName', '$image')")) {
                    echo "Problem uploading image.";
                } 
                else {
                    echo "Succes!";
                }
            }
        }
    ?>
</body>
</html>
IvoryNL
  • 41
  • 1
  • 9

3 Answers3

0

You have forgot to execute your query :

<html>
<head>
    <meta charset="UTF-8" />
    <title>Images</title>
</head>
<body>
    <form action="index.php" method="POST" enctype="multipart/form-data">
        File:
        <input type="file" name="image" />
        <input type="submit" value="Upload" />
    </form>
    <?php
        require "connect.inc.php";
        @$file = $_FILES['image']['name'];

        if (!isset($file)) {
            echo "Please select an image.";
        }
        else {
            $image = file_get_contents($_FILES['image']['name']);
            $imageName = $_FILES['image']['tmp_name'];
            $img = $_FILES['image']['name'];
            $imageSize = getimagesize($_FILES['image']['name']);
//add move uploaded file function here

            if ($imageSize == FALSE) {
                echo "This is not an image.";
            }
            else {
                $sql = mysql_query("INSERT INTO `afbeelding` VALUES ('', '$img', '$image')"); // did changes here
               if($sql){
                   echo "Succes!";
                } 
                else {
                   echo "Problem uploading image.";
                }
            }
        }
    ?>
</body>
</html>
Nehal
  • 1,542
  • 4
  • 17
  • 30
0

I have not tested, but will work

<?php
require "connect.inc.php";
if(isset($_POST['submit']))
{
    @$file = $_FILES['image']['tmp_name'];

    if (!isset($file)) {
        echo "Please select an image.";
    }
    else {
        $image = file_get_contents($_FILES['image']['tmp_name']);
        $imageName = $_FILES['image']['tmp_name'];
        $imageSize = getimagesize($_FILES['image']['tmp_name']);

        if ($imageSize == FALSE) {
            echo "This is not an image.";
        }
        else {
            $sql = "INSERT INTO `afbeelding` VALUES ('', '$imageName', '$image')";
            if (!mysql_query("INSERT INTO `afbeelding` VALUES ('', '$imageName', '$image')")) {
                echo "Problem uploading image.";
            } 
            else {
                echo "Succes!";
            }
        }
    }
}
    ?>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Images</title>
</head>
<body>
    <form action="index.php" method="POST" enctype="multipart/form-data">
        File:
        <input type="file" name="image" />
        <input type="submit" name="submit" value="Upload" />
    </form>

</body>
</html>
Gaurav Rai
  • 900
  • 10
  • 23
0

The problem was not having the addslashes(). In: $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

If i remove them again it won't work but if i put them back in it succeeds.

IvoryNL
  • 41
  • 1
  • 9