RE: [PHP-DB] storing images in database
| From: | Bastien Koert | Date: | Wed, 26 Jan 2005 01:55:46 +0000 |
| Subject: | RE: [PHP-DB] storing images in database | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-38350@lists.php.net to get a copy of this message | ||
Just to polish the topic off, below are the two files that have been tested on my machine (xp, apache2, php 4.3.9, mysql4.0.1x)
<?php
//show_image.php
require("conn.php");
//check to see if the id is passed
if(isset($_GET['id'])) {
$id=$_GET['id'];
$query = "select bin_data, filetype from binary_data where id=$id";
//echo $query;
$result = connect($query);
$row = mysql_fetch_array($result);
{
$data = $row['bin_data'];
$type = $row['filetype'];
}
if ($type=="pjpeg") $type = "jpeg";
Header( "Content-type: $type");
echo $data;
}
?>
<?php
// show_desc.php
require("conn.php");
// you may have to modify login information for your database server
$query = "select description, id from binary_data ";
$result = connect($query);
while ($rows = MYSQL_FETCH_ARRAY($result))
{
echo $rows['description'];
echo "<br><br>";
echo "<img src=\"show_image.php?id=".$rows['id']."\">\n";
};
?>
And I used table structure
CREATE TABLE binary_data (
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description CHAR(50),
bin_data LONGBLOB,
filename CHAR(50),
filesize CHAR(50),
filetype CHAR(50)
);
hth
bastien
From: Chip Wiegand <chip.wiegand@simrad.com> To: bastien_k@hotmail.com CC: "PHP DB" <php-db@lists.php.net> Subject: RE: [PHP-DB] storing images in database Date: Tue, 25 Jan 2005 12:57:40 -0800 "Bastien Koert" <bastien_k@hotmail.com> wrote on 01/25/2005 12:46:12 PM: yes goes back to the whole header problem which is why you are here. If you could post the code, it would be simpler to help you... Bastien This is in the main page - <? printf("<p><img src=\"image-src.php?id=$id\" alt=\"hotspot images\">%s</p>", $row["text"]); ?> and this is in a new included page - <? if($_GET['id']) { $id = $_GET['id']; $query = "select * from hotspots where id=$id"; $result = @MYSQL_QUERY($query); $data = @MYSQL_RESULT($result,0,"image"); $type = @MYSQL_RESULT($result,0,"type"); Header( "Content-type: $type"); echo $data; }; ?> The database connection statements are in an include file called at the top of the main page. In the first statement shown above the alt text for the image appears on the web page just fine, the image itself shows a broken image icon. FWIW, I have the image stored in the database in a blob field, is that correct? -- ChipFrom: Chip Wiegand <chip.wiegand@simrad.com> To: bastien_k@hotmail.com Subject: RE: [PHP-DB] storing images in database Date: Tue, 25 Jan 2005 12:44:44 -0800 "Bastien Koert" <bastien_k@hotmail.com> wrote on 01/25/2005 12:39:15PM:to...Its not src='id=$id'> that will defnintely blow up.... echo '<img src="./path/to/image.php?id=$id">'; where $id is the id of the record you are trying to get the imagejustBastienSo the code has to be a seperate included page I guess? -- ChipFrom: Chip Wiegand <chip.wiegand@simrad.com> To: bastien_k@hotmail.com CC: php-db@lists.php.net Subject: RE: [PHP-DB] storing images in database Date: Tue, 25 Jan 2005 12:37:15 -0800 Thanks Bastien, In testing this I have added the code samples to a page and have it working except the path statement is not correct. For now, I'veaddedTheall the code to one page, rather than including a second page. The statement - echo '<img src="id=$id">'; is resulting in this error -suggestions?requested URL /id=$id was not found on this server. Any09:45:39Thanks, Chip "Bastien Koert" <bastien_k@hotmail.com> wrote on 01/25/2005AM:athe best way to do this is to move the image processing code toid=$id";server:separatepage and include it like this echo '<img src="./path/to/image.php?id=$id">'; then the image page looks like this: <?php if($_GET['id']) { $id = $_GET['id']; // you may have to modify login information for your database@MYSQL_CONNECT("localhost","root","password"); @mysql_select_db("binary_data"); $query = "select bin_data,filetype from binary_data wheresql$result = @MYSQL_QUERY($query); $data = @MYSQL_RESULT($result,0,"bin_data"); $type = @MYSQL_RESULT($result,0,"filetype"); Header( "Content-type: $type"); echo $data; }; ?> bastienFrom: Chip Wiegand <chip.wiegand@simrad.com> To: "PHP DB" <php-db@lists.php.net> Subject: [PHP-DB] storing images in database Date: Tue, 25 Jan 2005 09:11:07 -0800 I have stored a .jpg image in a database, then when I make acodestatementto display that image on a web page all I get is the crypticinmimeplaceof the image. I am storing it in a row configured as a blob,typewrong?image/jpeg and binary (using phpMyAdmin). What am I doingRegards, Chip -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php