krabople Posted March 26, 2012 Share Posted March 26, 2012 Hi, wondering if somebody can tell me where I'm going wrong (I'm new to all of this). I have the following php code which uploads an image file into my database: //Connect to database include 'Resources/Include/db.inc.php'; $tmp=$_FILES['image']['tmp_name']; //get users IP $ip=$_SERVER['REMOTE_ADDR']; //Don't do anything if file wasn't selected if (!empty($tmp)) { //Copy file to temporary folder copy($tmp, "./temporary/".$ip.""); //open the copied image, ready to encode into text to go into the database $filename1 = "./temporary/".$ip; $fp1 = fopen($filename1, "rb"); //record the image contents into a variable $contents1 = fread($fp1, filesize($filename1)); $contents1 = addslashes($contents1); //close the file fclose($fp1); $ftype = $_FILES['image']['type']; //insert information into the database if(!mysql_query("INSERT INTO LetterImages (Data,Type,LetterID,Page)"." VALUES ( '$contents1', '$ftype',1,1)")){ echo mysql_error(); } //delete the temporary file we made unlink($filename1); } This seems to work ok, as when I go to the LetterImages table there is now an additional row with a file in the blob field. I then have the following code which is supposed to display the image: $result=mysql_query("SELECT * FROM LetterImages WHERE LetterID=1 AND Page=1"); //fetch data from database $sqldata=mysql_fetch_array($result); $encoded=stripslashes($sqldata['Data']); $ftype=$sqldata['Type']; //tell the browser what type of image to display header("Content-type: $ftype"); //decode and echo the image data echo $encoded; Instead of displaying an image, however, this just displays pages and pages of incomprehensible data. Can anybody tell me where I'm going horribly wrong? Quote Link to comment https://forums.phpfreaks.com/topic/259738-storing-then-displaying-image-from-database/ Share on other sites More sharing options...
litebearer Posted March 26, 2012 Share Posted March 26, 2012 Aside... Is there a reason you are storing as blob rather than simply storing the image in a folder and the image path/name in the database? Quote Link to comment https://forums.phpfreaks.com/topic/259738-storing-then-displaying-image-from-database/#findComment-1331211 Share on other sites More sharing options...
krabople Posted March 26, 2012 Author Share Posted March 26, 2012 Basically because I'm new to this and it seemed initially like the easiest option. I also think it's got to be better for referential integrity. If I can't get it to work like this, I'll probably look at doing it using a file system but as I've already developed this script it would be easier for the time being to amend it so that it works (although I have been trying to fix all day without success!). Quote Link to comment https://forums.phpfreaks.com/topic/259738-storing-then-displaying-image-from-database/#findComment-1331214 Share on other sites More sharing options...
litebearer Posted March 26, 2012 Share Posted March 26, 2012 Take a look here http://cookbooks.adobe.com/post_Display_an_image_stored_in_a_database__PHP_-16637.html Quote Link to comment https://forums.phpfreaks.com/topic/259738-storing-then-displaying-image-from-database/#findComment-1331232 Share on other sites More sharing options...
krabople Posted March 26, 2012 Author Share Posted March 26, 2012 Thanks for this, will check it out Quote Link to comment https://forums.phpfreaks.com/topic/259738-storing-then-displaying-image-from-database/#findComment-1331248 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.