PHP Developers Network

A community of PHP developers offering assistance, advice, discussion, and friendship.
 
Loading
It is currently Fri Jul 19, 2019 10:39 am

All times are UTC - 5 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Sat Feb 25, 2012 10:13 am 
Offline
Forum Commoner

Joined: Fri Nov 04, 2011 9:04 am
Posts: 28
Hi there,

I am on my way to create the feature for users to upload their profile photo to the database. I manage to upload my photo to database in binary form (BLOB) but I am having problem while trying to display it.

upload form code:
Syntax: [ Download ] [ Hide ]
<?php //get the posted image when the submit button is clicked
$username = "MentorMenteeData";
$password = "mentormenteedata";
$host = "localhost";
$database = "mentormenteesystem";

// Make the connect to MySQL or die
// and display an error.
$link = mysql_connect($host, $username, $password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

// Select your database
mysql_select_db ($database);        
     
   if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {

      // Temporary file name stored on the server
      $tmpName  = $_FILES['image']['tmp_name'];  
       
      // Read the file
      $fp      = fopen($tmpName, 'r');
      $data = fread($fp, filesize($tmpName));
      $data = addslashes($data);
      fclose($fp);
       
      $student_id=$row_student['student_id'];

      // Create the query and insert
      // into our database.
      $query = "UPDATE student SET student_img='$data' WHERE student_id ='$student_id'";
      $query .= "(image) VALUES ('$data')";
      $results = mysql_query($query, $link);
       
      // Print results
      print "Thank you, your file has been uploaded.";
       
}
else {
   print "No image selected/uploaded";
}
[syntax=php][/syntax]
// Close our MySQL Link
mysql_close($link);
?>

<form action="" method="post" enctype="multipart/form-data" name="changer">

<strong style="color: #FFD700;">Upload your image:</strong><br />
<input name="MAX_FILE_SIZE" value="102400" type="hidden"><br /><br />
<input namge="image" accept="image/jpeg" type="file">
<input type="submit" value="Submit">
</form>
 


Code to display image:
Syntax: [ Download ] [ Hide ]
<?php

$username = "MentorMenteeData";
$password = "mentormenteedata";
$host = "localhost";
$database = "mentormenteesystem";

mysql_connect($host, $username, $password) or die("Can not connect to database: ".mysql_error());

mysql_select_db($database) or die("Can not select the database: ".mysql_error());

$id = $_REQUEST['student_id'];

if(!isset($id) || empty($id) || !is_int($id)){
     die("Please select your image!");
}else{

$query = mysql_query("SELECT * FROM student WHERE student_id='".$id."'");
$row = mysql_fetch_array($query);
$content = $row['image'];
}

header('Content-type: image/jpeg');
     echo $content;
?>
 


I could see my database table for the image column containing some bits but I just cant seems to display it. Please advise.


Top
 Profile  
 
PostPosted: Sat Feb 25, 2012 6:49 pm 
Offline
Forum Regular
User avatar

Joined: Wed Mar 05, 2008 11:23 pm
Posts: 732
Location: Sunriver, OR
What do you see when you try to display it? Are you getting a random looking string?

My initial thought it to question your design decision. Typically images are stored on the hard disk and a file path is recorded in your database. Is there a reason you are storing your images in a database?


Top
 Profile  
 
PostPosted: Thu Mar 15, 2012 9:37 am 
Offline
Forum Newbie

Joined: Fri Mar 18, 2011 9:13 am
Posts: 11
I think flyingcircus is absolutely right to question your design, but you cannot just 'display' a string and expect PHP to know it's an image (rather than any other sequence of binary data. If storing the data in binary is the right approach and you still need to recode it for display, you'll need to use imagecreatefromstring() and probably at least one of the other php image functions.


Top
 Profile  
 
PostPosted: Thu Mar 15, 2012 11:07 am 
Offline
Forum Regular

Joined: Wed Jan 13, 2010 8:22 pm
Posts: 757


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group