hello, Check the PHP-DB archives you'll find a code for the upload, and this one for viewing image :
<? $mysql_hostname = ""; $mysql_username = ""; $mysql_passwd = ""; $mysql_dbname = ""; // Connecting, selecting database $link = @mysql_connect($mysql_hostname,$mysql_username, $mysql_passwd) or die("Could not connect"); @mysql_select_db($mysql_dbname) or die("Could not select database"); $query = "select image_thumbnail,image_thumbnail_type from master_products where item_id=$id"; $result = mysql_query( $query ) or die("Query failed"); $num = musql_numrows($result); $data = @mysql_fetch_array($result); if ($id == 1) { // Output the MIME header $mime = $data["image_thumbnail_type"]; header("Content-Type: $mime"); echo $data["image_thumbnail"]; } else { // not valid id image, you can send any other message } ?> Hope this will help Hatem "Darren McPhee" <[EMAIL PROTECTED]> a écrit dans le message de news: [EMAIL PROTECTED] > I have spent the last 3 days trying to figure this out. And will probably > give up very soon. I have written 2 programs (which are very common PHP > programs) that A) Allows me to upload image files into a MYSQL database > using a simple form. And B) Allows me to retrieve and display the image > using a PHP script. This is my problem:- > > I can upload the images ok. I store the binary code, image type, name, and > size within the MYSQL database. On checking the database directly using > DBTools, I can see that the files have uploaded. The file sizes reflect > exactly what was originally on the hard disk of my PC (not sure if this is a > correct gauge). > > When I run my PHP program to display the images, maybe only 1 out of 10 > actually displays correctly. The rest are broken up or non displayable > images. One image even made a prompt window appear and somehow now causes > Windows paint to load the image instead of the browser. God only knows how > that occurred !! > > Below are my (designed by others) 2 programs. The first program is the > upload form. This seems to work ok. > > <HTML> > <HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD> > <BODY> > > <?php > // code that will be executed if the form has been submitted: > > if ($submit) { > > // connect to the database > > require_once('../../Connections/TestServer.php'); > mysql_select_db($database_TestServer, $TestServer); > > $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data))); > > $result=MYSQL_QUERY("INSERT INTO master_products > (image_thumbnail,image_thumbnail_name,image_thumbnail_size,image_thumbnail_t > ype) ". > "VALUES > ('$data','$form_data_name','$form_data_size','$form_data_type')"); > > $id= mysql_insert_id(); > print "<p>This file has the following Database ID: <b>$id</b>"; > > MYSQL_CLOSE(); > > } else { > > // else show the form to submit new data: > ?> > > <form method="post" action="<?php echo $PHP_SELF; ?>" > enctype="multipart/form-data"> > <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"> > <br>File to upload/store in database:<br> > <input type="file" name="form_data" size="40"> > <p><input type="submit" name="submit" value="submit"> > </form> > > <?php > > } > > ?> > > </BODY> > </HTML> > > Here is the code to display the image:- > > <?php > if($id) { > require_once('../Connections/TestServer.php'); > mysql_select_db($database_TestServer, $TestServer); > $query = "select image_thumbnail,image_thumbnail_type from > master_products where item_id=$id"; > $result = @MYSQL_QUERY($query); > $data = @MYSQL_RESULT($result,0,"image_thumbnail"); > $type = @MYSQL_RESULT($result,0,"image_thumbnail_type"); > Header( "Content-type: $type"); > echo $data; > }; > ?> > > I run the above program in the following way: > http://192.168.0.11/htdocs/displayimage2.php?id=9 The ID is the item_id > primary key field for whichever record I want to display. > > I have tried these programs on a test server here in my room to a test > Apache server and MYSQL test database, and also from my ISP to a MYSQL > database at a server at my ISP. I get exactly the same problem. When I run > the display image program, the images being displayed are always being > displayed the same. Which points the problem towards the upload process > (maybe). If anybody can tell me what the heck is wrong here, I'll give them > a medal !! There is basically some kind of binary corruption going on (it > looks like) > > For added information, below is my database table structure. At the moment, > the only part I am actually using relates to the image_thumbnail sections. > > Darren. > > > > CREATE TABLE master_products ( > item_id SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, > item_code VARCHAR (10) UNIQUE, > item_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > item_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > > category ENUM ("none","single herbs","general > vitality","ageing","arthritis","eyesite","prostate","ahlzheimers", > "weight > loss","menopause","depression","fatigue","headaches","insomnia","colds and > flues","allergies", > "healthy heart","cancer prevention","aphrodisiacs","sexual herbs","for > women","for men","books"), > > name VARCHAR (30), > name_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > name_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > INDEX idx_name (name), > > desc_brief VARCHAR (255), > desc_brief_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > desc_brief_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > INDEX idx_desc_brief (desc_brief), > > desc_long TEXT, > desc_long_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > desc_long_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > > price DECIMAL (7,2), > price_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > price_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > > image LONGBLOB, > image_name VARCHAR (50), > image_size INT UNSIGNED, > image_type VARCHAR (50), > image_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > image_datemodified DATETIME DEFAULT '0000-00-00 00:00:00', > > image_thumbnail LONGBLOB, > image_thumbnail_name VARCHAR (50), > image_thumbnail_size INT UNSIGNED, > image_thumbnail_type VARCHAR (50), > image_thumbnail_dateadded DATETIME DEFAULT '0000-00-00 00:00:00', > image_thumbnail_datemodified DATETIME DEFAULT '0000-00-00 00:00:00' > ); > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php