Using PHP to upload file and add the path to MySQL database

123,360

First you should use print_r($_FILES) to debug, and see what it contains. :

your uploads.php would look like:

//This is the directory where images will be saved
$target = "pics/";
$target = $target . basename( $_FILES['Filename']['name']);

//This gets all the other information from the form
$Filename=basename( $_FILES['Filename']['name']);
$Description=$_POST['Description'];


//Writes the Filename to the server
if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
    //Tells you if its all ok
    echo "The file ". basename( $_FILES['Filename']['name']). " has been uploaded, and your information has been added to the directory";
    // Connects to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("altabotanikk") or die(mysql_error()) ;

    //Writes the information to the database
    mysql_query("INSERT INTO picture (Filename,Description)
    VALUES ('$Filename', '$Description')") ;
} else {
    //Gives and error if its not
    echo "Sorry, there was a problem uploading your file.";
}



?>

EDIT: Since this is old post, currently it is strongly recommended to use either mysqli or pdo instead mysql_ functions in php

Share:
123,360
The Last Melody
Author by

The Last Melody

Updated on October 20, 2021

Comments

  • The Last Melody
    The Last Melody over 2 years

    Upload.php:

    <?php
    
    //This is the directory where images will be saved
    $target = "pics";
    $target = $target . basename( $_FILES['Filename']['name']);
    
    //This gets all the other information from the form
    $Filename=$_POST['Filename'];
    $Description=$_POST['Description'];
    $pic=($_FILES['Filename']['name']);
    
    
    // Connects to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("altabotanikk") or die(mysql_error()) ;
    
    //Writes the information to the database
    mysql_query("INSERT INTO picture (Filename,Description)
    VALUES ('$Filename', '$Description')") ;
    
    //Writes the Filename to the server
    if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
        //Tells you if its all ok
        echo "The file ". basename( $_FILES['uploadedfile']['Filename']). " has been uploaded, and your information has been added to the directory";
    } else {
        //Gives and error if its not
        echo "Sorry, there was a problem uploading your file.";
    }
    ?>
    

    And here is the form(in a separate file):

    <form method="post" action="upload.php" enctype="multipart/form-data">
        <p>Photo:</p>
        <input type="file" name="Filename"> 
        <p>Description</p>
        <textarea rows="10" cols="35" name="Description"></textarea>
        <br/>
        <input TYPE="submit" name="upload" value="Add"/>
    </form>
    

    The errors are

     Undefined index: Filename on Line 17
    

    (the $Filename=$_POST['Filename'];)

    and

    Undefined index: uploadedfile on Line 35
    

    (the echo "The file ". basename( $_FILES['uploadedfile']['Filename']). " has been uploaded, and your information has been added to the directory";)

    echo"<pre>".print_r($_FILES,true)."</pre>";
    

    gives me:

    Array
    (
        [Filename] => Array
            (
                [name] => Laserkanon.jpg
                [type] => image/jpeg
                [tmp_name] => C:\WampServer\tmp\php11D4.tmp
                [error] => 0
                [size] => 41813
            )
    
    )