I am starting to wonder if the problem lies in mysql_escape_string and it's
manipulation of the binary data before inserting it into the mysql db
(INSERT.PHP)

I have pretty much the same thing that Gareth has.  I did check, the php
script does not time out.  I have to at least leave the Header:
Content-Type: $ImgType otherwise the script will output a string and not an
image.

Gareth Hastings wrote:

> I found this worked fine for me, I used the same method to read the file
> into the database and the following lines to print the image out.
>
> I tested this with images from 1kb --> 945kb both gif/jpg and it worked
> fine
>
> <?
> $conn   = mysql_connect("x", "x", "x");
> $db     = mysql_select_db ("img");
> $result = mysql_query ("select * from img");
> $image  = mysql_result($result, 0, "image");
> mysql_close($conn);
>
> echo $image;
> ?>
>
> Try taking out your header statements in display.php just to see what
> happens. Also, you script doesn't timeout half way through does it ?
> (wild guessing now) Does your web server show anything in the logs ?
>
> Gareth
>
> -----Original Message-----
> From: Michael Hall [mailto:[EMAIL PROTECTED]]
> Sent: 07 December 2001 14:08
> To: phantom
> Cc: [EMAIL PROTECTED]
> Subject: Re: [PHP] Uploaded Image display problems
>
> I can't help you with the problem described below, but I can tell you
> this:
>
> I, like many others, do not store images as BLOBs in a database. I store
> them in a regular directory (/images), and just store the image name,
> path
> or URL in the database. This generally creates less hassles.
>
> Mick
>
> On Fri, 7 Dec 2001, phantom wrote:
>
> > With thanks to you who have helped me, I have constructed a PHP script
> > that allows the client to upload an image (jpg or gif) that is stored
> in
> > a MySQL Blob field.
> >
> > And I have a PHP script that will pull the binary data out of the
> MySQL
> > database and display the upload image for the client.
> >
> > THE PROBLEM: HALF MY GIF AND JPG FILES DO NOT DISPLAY PROPERLY WHEN
> > VIEWING THE DISPLAY.PHP SCRIPT (see below).  Half display fine, half
> do
> > not.
> >
> > Has anyone else had this problem or know what I can do to remedy it?
> > Thank you.
> >
> > Source code below * form.htm, insert.php, display.php *
> >
> > ============ FORM HTM =============
> >
> > <HTML>
> > <HEAD>
> > <TITLE>Insert Binary Data in a Database</TITLE>
> > </HEAD>
> >
> > <BODY>
> > <H1>Upload a File:</H1>
> >
> > <FORM enctype="multipart/form-data" method="post" action="insert.php">
> > <input type="hidden" name="MAX_FILE_SIZE" value="200000">
> > <INPUT type="file" name="img1" size="30">
> > <br><br>
> > <INPUT type="submit" name="submit" value="Use This File">
> >
> > </FORM>
> > </BODY>
> > </HTML>
> >
> > ============ INSERT PHP =============
> >
> > <?
> > if (!isset($img1)) {
> >  header("Location: insert_file.htm?Msg=EmptyUpload");
> >  exit();
> > }
> >
> > $db = mysql_connect("localhost", $DB_Username, $DB_pass)
> >  or die ("Unable to connect to server.");
> > mysql_select_db($DB_name)
> >  or die ("Unable to select DB");
> >
> > $binary_junk  = mysql_escape_string(fread(fopen($img1, "r"),
> > filesize($img1)));
> > // original file used addslashes but here I used mysql_escape_string;
> >
> > $insert_data = "INSERT INTO ImageTable
> (ImgName,ImgSize,ImgType,ImgData)
> > VALUES ('$img1_name', '$img1_size', '$img1_type', '$binary_junk')";
> >
> > mysql_query($insert_data)
> >  or die ("Unable to insert data: ".mysql_error());
> >
> > $PKey = mysql_insert_id();
> >
> > ?>
> >
> > <HTML>
> > <HEAD>
> > <TITLE>Successful File Insertion!</TITLE>
> >
> > <H1>Success!</H1>
> >
> > <P>You have inserted the following into your database:<br>
> >   <? echo "$img1_name";?>
> >   a
> >   <? echo "$img1_size";?>
> >   byte file with a mime type of
> >   <?
> >   echo "$img1_type"; ?>.</P>
> > View Your Image <a href="display.php?PKey=<?=$PKey?>">HERE</a>
> > </BODY>
> > </HTML>
> >
> > ============ DISPLAY PHP =============
> >
> > <?
> > $db = mysql_connect("localhost", $DB_Username, $DB_pass)
> >  or die ("Unable to connect to server.");
> > mysql_select_db($DB_name)
> >  or die ("Unable to select DB");
> >
> > $get_image = "SELECT ImgType, ImgData FROM ImageTable WHERE
> PKey=$PKey";
> >
> > $get_image_result = mysql_query($get_image)
> >  or die ("Unable to get image.");
> >
> > $binary_junk = mysql_result($get_image_result,0,ImgData);
> > $file_type = mysql_result($get_image_result,0,ImgType);
> >
> > header("Content-Type: $file_type");
> > header("Content-Length: " . strlen($binary_junk));
> > echo "$binary_junk";
> >
> > ?>
> >
> >
> >
>
> --
> ################################
> Michael Hall
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> http://openlearningcommunity.org
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to