Page 1 of 1

Display image from MySQL databse

Posted: Mon Jun 04, 2012 4:39 am
by ranura
I'm trying to display an image form the mysql database.

I have this code. But it returns, "Warning: Cannot modify header information - headers already sent by (output started at E:\Softwares\WAMP\wamp\www\site\index.php:5)"

When i commented the "header('Content-type: ' . $row_getImage['mimetype']);" line, it will not display an error though displays something like hashcode instead of the image. Please look at the attachment.

What can I do for this?

Code: Select all

<?php
	$connect = mysql_connect("localhost", "root", "123") or die ("Error, check your server connection.");
	$database_testConn = mysql_select_db("test1") or die("cannot select DB");

	$query_getImage = "SELECT mimetype, image FROM images";

	$getImage = mysql_query($query_getImage, $connect) or die(mysql_error());

	while($row_getImage = mysql_fetch_array($getImage)){

		header('Content-type: ' . $row_getImage['mimetype']);
		echo $row_getImage['image'];
		mysql_free_result($getImage);
	}
	mysql_close();
?>

Re: Display image from MySQL databse

Posted: Mon Jun 04, 2012 7:21 am
by social_experiment
http://stackoverflow.com/questions/1636 ... -using-php
this url may be of some assistance;

The warning you are receiving is because headers have to be sent before any other output on the page. What you are seeing is the image in an incorrect format (not jpeg).

Re: Display image from MySQL databse

Posted: Mon Jun 04, 2012 2:05 pm
by pickle
If possible, do not store your images in a database. I know it sounds appealing because you can simply have all the data you need from one query, but it's a bad idea. The database was not intended to hold image data - that's what the filesystem is for. Just store a path to the file in the record, and let the web server deal with sending it to the browser.