hi

i am new to this forum. i am able to add image file(a.jpg) to mysql databse. when i see the file in a databse . i could see the file.but when i try to retrive that file ia m getting error.can anybody help me

thanks

how are you saving the image? Are you just saving the image name or are you saving the image data?

What type of database field are you using to save the image? text, blob, varchar?

what code are you using to retrieve the image?

where are you getting the error? in your php? or are you just not showing the image after you retrieve it?

hi

my database data

CREATE TABLE upload (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
size INT NOT NULL,
content MEDIUMBLOB NOT NULL,
PRIMARY KEY(id)
);

my html page to upload file to database

<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr> 
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"> 
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>

submiting this to mysql databse

<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
 
$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
 
if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}
 
include 'library/config.php';
include 'library/opendb.php';
 
$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed'); 
include 'library/closedb.php';
 
echo "<br>File $fileName uploaded<br>";
} 
?>

now the problem is i need to retrive this file(files are image).how to retrive these image files

thanks for reply

You can go to this site in which give you the idea of uploading and downloading files to/from database.
http://www.php-mysql-tutorial.com/php-mysql-upload.php

However, since the file is an image file. I suggest that you use the method of uploading and downloading files to/from file server where any files you uploaded will be stored on a folder at the server and the link is stored in the database. It will be making the database bulky and format conversion error when storing files in database. Below are the example for uploading and downloading files to file server. You can refer it:
http://www.php-mysql-tutorial.com/upload-to-file-server.php

Hope it helps.

hi

i am new to this forum. i am able to add image file(a.jpg) to mysql databse. when i see the file in a databse . i could see the file.but when i try to retrive that file ia m getting error.can anybody help me

thanks

<table width="816" height="377" border="0" cellpadding="1" cellspacing="1" bordercolor="#000000" >
      <tr>
        <th height="212" scope="col" align="left" valign="top">
        <p class="style11 style5">
    <?
    @ $rpp;        //Records Per Page
    @ $cps;        //Current Page Starting row number
    @ $lps;        //Last Page Starting row number
    @ $a;        //will be used to print the starting row number that is shown in the page
    @ $b;         //will be used to print the ending row number that is shown in the page
    /////////////////////////////////////////////////////////////////////////////////
    //Database connection
    /////////////////////////////////////////////////////////////////////////////////

    $database="cinemetrics";

    @mysql_connect("localhost","","");

    @mysql_select_db($database) or die( "Unable to select database");
    $user=$_SESSION['username'];

$folder="upload/profile_img/110x80/";
    /////////////////////////////////////////////////////////////////////////////////

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to make sure when the page is loaded for the
    //first time, Current Page's Starting row number is 0, i.e. 1st row from the
    //table is being printed. It will change as the user will click on next.
    /////////////////////////////////////////////////////////////////////////////////  
    if(empty($_GET["cps"]))
    {
        $cps = "0";
    }
    else
    {
        $cps = $_GET["cps"];
    }
    /////////////////////////////////////////////////////////////////////////////////

    $a = $cps+1;

    $rpp = "12";

    $lps = $cps - $rpp; //Calculating the starting row number for previous page

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to make sure whether a link to Previous page is
    //needed or not. If the user is viewing the first set of data then the link will
    //be disabled, if on the next set then it will carry the $lps in its link and
    //enable the link
    if ($cps <> 0)
    {
        $prv =  "<a href='viewimages.php?cps=$lps'>Previous</a>";
    }
    else  
    {
        $prv =  "<font color='cccccc'>Previous</font>";
    }
    $qry = "SELECT * FROM image WHERE username='$user'";
$result=mysql_query($qry);
$nr0=mysql_num_rows($result);
$sql = "SELECT * FROM image WHERE username='$user' LIMIT $cps, $rpp";
$data=mysql_query($sql);
$nr=mysql_num_rows($data);


    /////////////////////////////////////////////////////////////////////////////////
    //Following SQL Statement uses SQL_CALC_FOUND_ROWS function to calculate total
    //number of rows found by the query excluding the limit function added at the
    //end of the SQL statement. This is followed by second query with FOUND_ROWS()
    //function which actually gives out the number of rows found.
    /////////////////////////////////////////////////////////////////////////////////
    $q="Select SQL_CALC_FOUND_ROWS * from paging limit $cps, $rpp";
    $rs=mysql_query($q) or die(mysql_error());
    $nr = mysql_num_rows($rs); //Number of rows found with LIMIT in action

    $q0="Select FOUND_ROWS()";
    $rs0=mysql_query($q0) or die(mysql_error());
    $row0=mysql_fetch_array($rs0);
    $nr0 = $row0["FOUND_ROWS()"]; //Number of rows found without LIMIT in action

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to determine whether the user has reached the
    //last page of the records. For example, if we have 27 rows to print and we show
    //10 rows per page, then on the third and the last page it will show seven rows
    //and will say at the top that SHOWING RECORDS FROM 21 to 27. If the following
    //validator is not used then it shows SHOWING RECORDS FROM 21 to 30.
    /////////////////////////////////////////////////////////////////////////////////  
    if (($nr0 < 12) || ($nr < 12))
    {
           $b = $nr0;
    }
    else
    {
        $b = ($cps) + $rpp;
    }
Print "<table border cellpadding=3>";
Print "<tr>";
//echo $folder;
$i=1;
$k=4;
while($info = mysql_fetch_array( $data ))
{
$cps=$cps+1;
echo "<th><td>";
?>
<?
echo "F:\phpdev\www\cinetrics\upload\profile_img\400x300\".'"$info['imagepath']"';
<a href="javascript: void(0)" onClick="OpenNewWindow(echo "F:\phpdev\www\cinetrics\upload\profile_img\400x300\".$info['imagepath'] );" onmouseover="javascript:window.status='Click to view Image'; return true;">


 echo "<img src='".$folder.$info['imagepath']."' ></a></td></th>";
$j=fmod($i,$k);
echo $j;
if($j==0)
{
Print "</tr><tr>";
}
$i++;
}
Print "</tr>";
Print "</table>";
?>
</p>        </th>
      </tr>
    <?
    echo "<tr><td align='right' colspan=2>$prv";

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to determine whether the Next link will be
    //enabled or disabled. If the user has reached the last page of the record, then
    //the Next link will be disabled.
    /////////////////////////////////////////////////////////////////////////////////
    if ($cps == $nr0)
    {   
        echo "  |  <font color='CCCCCC'>Next</font>";
    }
    else
    {
        if ($nr0 > 5)
        {
            echo "  |  <a href=' viewimages.php?cps=$cps&lps=$lps'>Next</a>";
        }
    }
    /////////////////////////////////////////////////////////////////////////////////
    ?>

</tr>
</table>

change database as u have and write your filename at next and previous.i think it will work for you because it worked at my side.

Edited 3 Years Ago by mike_2000_17: Fixed formatting

can u pls tel me how to display image from mysql as thumbnail

Since you have the image data in a blob field, you can display the image just by echoing the blob data in your PHP script. (send the binary blog data to HTTP).

You'll just have to send the correct HTTP headers telling the browser that this is an image.

header('Content-Type: image/png');

where png is the image type.

If you want to resize the image into a thumbnail, you can manipulate the blob data just as you would image data, since that is what it is. You need a library such as GD2 or imagemagik.

hiiiii I give you code that are worked .it used to retrive images from database in form of thumbnail with paging facility....... for this you make a folder upload and inside upload you make folder profile_img.in this folder you make 2 folder 110x80 and 800x600 in which images are stored in different size.you should change your database name and other things as you want.

here is code

 <?
    @ $rpp;        //Records Per Page
    @ $cps;        //Current Page Starting row number
    @ $lps;        //Last Page Starting row number
    @ $a;        //will be used to print the starting row number that is shown in the page
    @ $b;         //will be used to print the ending row number that is shown in the page
    /////////////////////////////////////////////////////////////////////////////////
    //Database connection
    /////////////////////////////////////////////////////////////////////////////////

    $database="cinemetrics";

    @mysql_connect("localhost","","");

    @mysql_select_db($database) or die( "Unable to select database");
    $user=$_SESSION['username'];

$folder="upload/profile_img/110x80/";
    /////////////////////////////////////////////////////////////////////////////////

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to make sure when the page is loaded for the
    //first time, Current Page's Starting row number is 0, i.e. 1st row from the
    //table is being printed. It will change as the user will click on next.
    /////////////////////////////////////////////////////////////////////////////////
    if(empty($_GET["cps"]))
    {
        $cps = "0";
    }
    else
    {
        $cps = $_GET["cps"];
    }
    /////////////////////////////////////////////////////////////////////////////////

    $a = $cps+1;

    $rpp = "12";

    $lps = $cps - $rpp; //Calculating the starting row number for previous page

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to make sure whether a link to Previous page is
    //needed or not. If the user is viewing the first set of data then the link will
    //be disabled, if on the next set then it will carry the $lps in its link and
    //enable the link
    if ($cps <> 0)
    {
        $prv =  "<a href='viewimages.php?cps=$lps'>Previous</a>";
    }
    else
    {
        $prv =  "<font color='cccccc'>Previous</font>";
    }
    $qry = "SELECT * FROM image WHERE username='$user'";
$result=mysql_query($qry);
$nr0=mysql_num_rows($result);
$sql = "SELECT * FROM image WHERE username='$user' LIMIT $cps, $rpp";
$data=mysql_query($sql);
$nr=mysql_num_rows($data);
    /////////////////////////////////////////////////////////////////////////////////

    /////////////////////////////////////////////////////////////////////////////////
    //Following SQL Statement uses SQL_CALC_FOUND_ROWS function to calculate total
    //number of rows found by the query excluding the limit function added at the
    //end of the SQL statement. This is followed by second query with FOUND_ROWS()
    //function which actually gives out the number of rows found.
    /////////////////////////////////////////////////////////////////////////////////
    $q="Select SQL_CALC_FOUND_ROWS * from paging limit $cps, $rpp";
    $rs=mysql_query($q) or die(mysql_error());
    $nr = mysql_num_rows($rs); //Number of rows found with LIMIT in action

    $q0="Select FOUND_ROWS()";
    $rs0=mysql_query($q0) or die(mysql_error());
    $row0=mysql_fetch_array($rs0);
    $nr0 = $row0["FOUND_ROWS()"]; //Number of rows found without LIMIT in action

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to determine whether the user has reached the
    //last page of the records. For example, if we have 27 rows to print and we show
    //10 rows per page, then on the third and the last page it will show seven rows
    //and will say at the top that SHOWING RECORDS FROM 21 to 27. If the following
    //validator is not used then it shows SHOWING RECORDS FROM 21 to 30.
    /////////////////////////////////////////////////////////////////////////////////
    if (($nr0 < 12) || ($nr < 12))
    {
           $b = $nr0;
    }
    else
    {
        $b = ($cps) + $rpp;
    }
Print "<table border=1 cellpadding=0>";
Print "<tr>";
//echo $folder;
$i=1;
$k=4;
while($info = mysql_fetch_array( $data )){
$cps=$cps+1;
?>

<a href="javascript: void(0)" onclick="openRequestedPopup('<? echo $info['id']; ?>')">
<?
echo "<th><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src='".$folder.$info['imagepath']."' ></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></th>";
$j=fmod($i,$k);

if($j==0)
{
Print "</tr><tr>";
}
$i++;
}
Print "</tr>";
Print "</table>";
?>
</p>        </td>
      </tr>
    <?
    echo "<tr><td align='right' colspan=2>$prv";

    /////////////////////////////////////////////////////////////////////////////////
    //Following IF Statement is used to determine whether the Next link will be
    //enabled or disabled. If the user has reached the last page of the record, then
    //the Next link will be disabled.
    /////////////////////////////////////////////////////////////////////////////////
    if ($cps == $nr0)
    {
        echo "  |  <font color='CCCCCC'>Next</font>";
    }
    else
    {
        if ($nr0 > 5)
        {
            echo "  |  <a href=' viewimages?cps=$cps&lps=$lps'>Next</a>";
        }
    }
    /////////////////////////////////////////////////////////////////////////////////
    ?>

</tr>
</table>

Edited 3 Years Ago by mike_2000_17: Fixed formatting

hi there, I have a similar problem of retrieving the image from the image file in the database which is mysql. However, I'm doing this using OpenLaszlo and MySql. Do you have any idea on how can iI retrieve the image? I really need help.

This article has been dead for over six months. Start a new discussion instead.