.fun by Radix

Upload Image to Mysql Database with PHP

Discussion in 'Webmaster Tutorials' started by squeaky14, Apr 11, 2005.

Replies:
3
Views:
147,672

Thread Status:
Not open for further replies.
  1. squeaky14

    squeaky14 New Member

    Joined:
    Mar 30, 2005
    Posts:
    9
    Likes Received:
    1
    Hi, this is my first tutorial. I have tested it and it all works great.
    It should work with any type of image.

    Today, err.. class, were going to make an image >> database uploader.

    Requirements:
    -Basic knowledge of php and mysql.
    -Access to a mysql database.

    First of all, create a table (and a database if necessary):

    CREATE TABLE `images` (
    `img` INT NOT NULL AUTO_INCREMENT ,
    `data` LONGTEXT NOT NULL ,
    PRIMARY KEY ( `img` )
    );

    Secondly, create a directory called "temporary" and chmod it to 777.

    Ok, now that you have made the table and directory lets get to the coding.
    This script will consist of 2 pages, "upload.php" and "image.php".

    First page, "upload.php":

    PHP:
    <?php
    //connect to database. Username and password need to be changed
    mysql_connect("localhost""username""password");

    //Select database, database_name needs to be changed
    mysql_select_db("database_name");

    if (!
    $_POST['uploaded']){
    //If nothing has been uploaded display the form
    ?>

    <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" 
    ENCTYPE="multipart/form-data">
    Upload:<br><br>
    <input type="file" name="image"><br><br>
    <input type="hidden" name="uploaded" value="1">
    <input type="submit" value="Upload">
    </form>

    <?
    }else{
    //if the form hasn't been submitted then:

    //from here onwards, we are copying the file to the directory you made earlier, so it can then be moved 
    //into the database. The image is named after the persons IP address until it gets moved into the database

    //get users IP
    $ip=$REMOTE_ADDR;

    //don't continue if an image hasn't been uploaded
    if (!empty($image)){

    //copy the image to directory
    copy($image, "./temporary/".$ip."");

    //open the copied image, ready to encode into text to go into the database
    $filename1 = "./temporary/".$REMOTE_ADDR;
    $fp1 = fopen($filename1, "r");

    //record the image contents into a variable
    $contents1 = fread($fp1, filesize($filename1));

    //close the file
    fclose($fp1);

    //encode the image into text
    $encoded = chunk_split(base64_encode($contents1)); 

    //insert information into the database
    mysql_query("INSERT INTO images (img,data)"."VALUES ('NULL', '$encoded')");

    //delete the temporary file we made
    unlink($filename1);
    }

    //end
    }
    ?>

    Now thats the upload script complete, how do we view the images?

    Second Page, "image.php":

    PHP:
    <?php
    //connect to database. Username and password need to be changed
    $connection=mysql_connect("localhost""username""password");

    //Select database, database_name needs to be changed
    mysql_select_db("database_name");

    //get decoded image data from database
    $result=mysql_query("SELECT * FROM images WHERE img='".$_GET['img']."'");

    //fetch data from database
    $data=mysql_fetch_array($result);
    $encoded=$data['data'];

    //note: "$data['data']" is the row "data" in the table we made.
    //The image ID would be "$data['img']" for example


    //close connection
    mysql_close($connection);

    //decode and echo the image data
    echo base64_decode($encoded);

    //end
    ?>

    Now, test it. To view the images you upload go to:
    http://www.yourdomain.com/image.php?img=1
    http://www.yourdomain.com/image.php?img=2
    http://www.yourdomain.com/image.php?img=3

    and so on...

    My first tutorial, tell me what you think. Did you find it hard to understand any parts?
     
    Last edited: Apr 11, 2005
    The views expressed on this page by users and staff are their own, not those of NamePros.
  2. alegend

    alegend Active Member VIP

    Joined:
    Feb 15, 2005
    Posts:
    2,617
    Likes Received:
    35
    nice tutorial, I might try it later.. Thanks! :tu:
     
  3. redhippo

    redhippo Member VIP

    Joined:
    Oct 5, 2003
    Posts:
    5,429
    Likes Received:
    19
    great tutorial...whens it gonna be a full script;)
     
  4. PolurNET

    PolurNET Active Member VIP

    Joined:
    Jul 29, 2004
    Posts:
    3,888
    Likes Received:
    68
    excellent work! I'll try it soon
     

Want to reply or ask your own question?

It only takes a minute to sign up – and it's free!
Thread Status:
Not open for further replies.

Share This Page

Loading...