Jump to content

Retrieve images from database


lucan

Recommended Posts

I have this code which uoploads and resizes the images into a folder without a problem. My problem is I am unable to view the Thumb or Full image which has uploaded to the folder and the database with the other data.  How do i correct this problem code below. Thanks

 

upload form and script


<?php
//database properties
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$dbname = 'DB';

// make a connection to mysql here
$conn = mysql_connect ($dbhost, $dbuser, $dbpass) or die ("I cannot connect to the database because: " . mysql_error());
mysql_select_db ($dbname) or die ("I cannot select the database '$dbname' because: " . mysql_error());

/******** start function ********/

function errors($error){
if (!empty($error))
{
	$i = 0;
	echo "<blockquote>\n";
	while ($i < count($error)){
	echo "<p><span class=\"warning\">".$error[$i]."</span></p>\n";
	$i ++;}
	echo "</blockquote>\n";
}// close if empty errors

} // close function


// ----------------Create Smaller version of large image---------------------
function createthumbfull($src_filename, $dst_filename_full)
{
  // Get information about the image
        list($src_width, $src_height, $type, $attr) = getimagesize( $src_filename );

        // Load the image based on filetype
        switch( $type ) {
        case IMAGETYPE_JPEG:
                $starting_image = imagecreatefromjpeg( $src_filename );
                break;
        case IMAGETYPE_PNG:
                $starting_image = imagecreatefrompng( $src_filename );
                break;
        case IMAGETYPE_GIF:
                $starting_image = imagecreatefromgif( $src_filename );
                break;
        default:
                return false;
        }


// get the image to create thumbnail from
    $starting_image; 
// get image width
$width = imagesx($starting_image);
// get image height
    $height = imagesy($starting_image);
// size to create thumnail width
$thumb_width = 600;

    // divide iwidth by specified thumb size
    $constant = $width/$thumb_width;
// round height by constant and add t thumb_height
    $thumb_height = round($height/$constant, 0);


//create thumb with true colours
    $thumb_image = imagecreatetruecolor($thumb_width, $thumb_height);

//create thumbnail resampled to make image smooth
    imagecopyresampled($thumb_image, $starting_image, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);

$ran = rand () ;	
$thumb1 = $ran.".jpg";

global $thumb_Add_full;
$thumb_Add_full = $dst_filename_full;	
$thumb_Add_full .= $thumb1;		

imagejpeg($thumb_image, "" .$dst_filename_full. "$thumb1");
} 



//-------------------- create thumbnail --------------------------------------------
//$src_filename = source of image
//$dst_filename_thumb = location to store final image
function createthumb($src_filename, $dst_filename_thumb)
{
    $size = getimagesize($src_filename); // get image size
   $stype = $size['mime']; //get image type : gif,png,jpg
   $w = $size[0]; // width of image
   $h = $size[1]; // height of image
   
   //do a switch statment to create image from right image type
   
   switch($stype) {
      //if image is gif create from gif
      case 'image/gif':
      $simg = imagecreatefromgif($src_filename);   
      break;
      //if image is jpeg create from jpeg
      case 'image/jpeg':
      $simg = imagecreatefromjpeg($src_filename);      
      break;
      //if image is png create from png
      case 'image/png':
      $simg = imagecreatefrompng($src_filename);      
      break;
      }

   
   $width = $w; // get image width   
    $height = $h; // get image height
   
   // size to create thumnail width
   $thumb_width = 150;
   $thumb_height = 150;
   
   //use true colour for image
   $dimg = imagecreatetruecolor($thumb_width, $thumb_height);
   $wm = $width/$thumb_width; //width divided by new width
   $hm = $height/$thumb_height; //height divided by new height
   $h_height = $thumb_height/2; //ass new height and chop in half
   $w_height = $thumb_width/2; //ass new height and chop in half
   
   //if original width is more then original height then modify by width
   if($w> $h) {
      $adjusted_width = $w / $hm; // add original width and divide it by modified height and add to var
      $half_width = $adjusted_width / 2; // chop width in half
      $int_width = $half_width - $w_height; // take away modified height from new width
      //make a copy of the image
      imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$thumb_height,$w,$h);
      
      //else if original width is less or equal to original height then modify by height
      
   } elseif(($w <$h) || ($w == $h)) {
      $adjusted_height = $h / $wm; // diving original height by modified  width
      $half_height = $adjusted_height / 2; // chop height in half
      $int_height = $half_height - $h_height; // take away modified height from new width
      //make a copy of the image
      imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$thumb_width,$adjusted_height,$w,$h);
   } else { // don't modify image and make a copy
      imagecopyresampled($dimg,$simg,0,0,0,0,$thumb_width,$thumb_height,$w,$h);
   }
      
   $ran = "thumb_".rand (); // generate random number and add to a string   
   $thumb2 = $ran.".jpg"; //add random string to a var and append .jpg on the end
   
   global $thumb_Add_thumb; //make this var available outside the function as it will be needed later.
   $thumb_Add_thumb = $dst_filename_thumb; // add destination
   $thumb_Add_thumb .= $thumb2; // append file name on the end
      
   //actually create the final image
    imagejpeg($dimg, "" .$dst_filename_thumb. "$thumb2");    
}

/********end functions ***********/

// if form submitted then process form
if (isset($_POST['submit'])){

// check feilds are not empty
$imageTitle = trim($_POST['imageTitle']);
if (strlen($imageTitle) < 3 || strlen($imageTitle) > 255) {
$error[] = 'Title must be at between 3 and 255 charactors.';
}

// check feilds are not empty or check image file size
if (!isset($_FILES["uploaded"])) {
$error[] = 'You forgot to select an image.';
}

// check feilds are not empty
$imageDesc = trim($_POST['imageDesc']);
if (strlen($imageDesc) < 3) {
$error[] = 'Please enter a description for your image.';
}

// location where inital upload will be moved to
$target = "productimages/" . $_FILES['uploaded']['name'] ;


// find the type of image
switch ($_FILES["uploaded"]["type"]) {
case $_FILES["uploaded"]["type"] == "image/gif":
move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target);
    break;
case $_FILES["uploaded"]["type"] == "image/jpeg":
   	move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target);		
    break;
case $_FILES["uploaded"]["type"] == "image/pjpeg":
   	move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target);		
    break;	
case $_FILES["uploaded"]["type"] == "image/png":
    move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target);		
    break;
case $_FILES["uploaded"]["type"] == "image/x-png":
    move_uploaded_file($_FILES["uploaded"]["tmp_name"],$target);		
    break;

default:
    $error[] = 'Wrong image type selected. Only JPG, PNG or GIF accepted!.';
}

// if valadation is okay then carry on
if (!$error) {

// post form data 
   $imageTitle     = $_POST['imageTitle'];
   $imageDesc     = $_POST['imageDesc'];
   
   //strip any tags from input
   $imageTitle   = strip_tags($imageTitle);
   $imageDesc   = strip_tags($imageDesc);
   
   
   // add slashes if needed
   if(!get_magic_quotes_gpc())
{ 
$imageTitle   = addslashes($imageTitle);
$imageDesc   = addslashes($imageDesc);
 }
   
   // remove any harhful code and stop sql injection
   $imageTitle = mysql_real_escape_string($imageTitle); 
   $imageDesc = mysql_real_escape_string($imageDesc); 
   
  
//add target location to varible $src_filename 
$src_filename = $target;
// define file locations for full sized and thumbnail images
$dst_filename_full = 'productimages/';
$dst_filename_thumb = 'productthumb/';

// create the images
createthumbfull($src_filename, $dst_filename_full);	//call function to create full sized image
createthumb($src_filename, $dst_filename_thumb); //call function to create thumbnail image
// delete original image as its not needed any more.
unlink ($src_filename);	


// insert data into images table
$query = "INSERT INTO table (imageTitle, imageThumb, imageFull, imageDesc) VALUES
  ('$imageTitle', '$thumb_Add_thumb', '$thumb_Add_full', '$imageDesc')";
  $result  = mysql_query($query) or die ('Cannot add image because: '. mysql_error());

// show a message to confirm results	
echo "<h3 align='center'> $imageTitle uploaded</h3>";		

}
}


//dispaly any errors
errors($error);
?>

<form enctype="multipart/form-data" action="" method="post">
<fieldset>
<legend>Upload Picture</legend>
<p>Only JPEG, GIF, or PNG images accepted</p>
<p><label>Title<br /></label><input type="text" name="imageTitle" <?php if (isset($error)){ echo "value=\"$imageTitle\""; }?> /></p>

<p><label>Image<br /></label><input type="file" name="uploaded" /></p>

<p><label>Description<br /></label><textarea name="imageDesc" cols="50" rows="10"><?php if (isset($error)){ echo "$imageDesc"; }?></textarea></p>

<p><label> </label><input type="submit" name="submit" value="Add Image" /></p>

</fieldset>
</form>

 

 

view data


<?php 

// Connects to your Database 
mysql_connect("localhost", "user", "pass") or die(mysql_error()) ; 
mysql_select_db("DB") or die(mysql_error()) ; 

//Retrieves data from MySQL 
$data = mysql_query("SELECT * FROM table") or die(mysql_error());  //Puts it into an array 
while($info = mysql_fetch_array( $data )) 
{ 
?>

<?php echo "<img src=http://www.web.com/productimages/" .$info['imagefull'] ." > <br>"; ?>
<?php echo "<img src=http://www.web.com/productthumb/" .$info['imageThumb'] ." > <br>"; ?>


<?php echo "<b>imageTitle:</b> ".$info['imageTitle'] . "<br> "; ?>
<?php echo "<b>imageDesc:</b> ".$info['imageDesc'] . " <hr>"; ?>

<?php  }?>

 

 

 

 

Link to comment
https://forums.phpfreaks.com/topic/234479-retrieve-images-from-database/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.