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

Reply via email to