Images and local and net

This is a discussion on Images and local and net within the alt.comp.lang.php forums, part of the PHP Programming Forums category; Hi all I have a cross platform problem. I have written a Delphi application that stores images in a paradox ...


Go Back   Usenet Forums > PHP Programming Forums > alt.comp.lang.php

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 07-21-2003
Brian
 
Posts: n/a
Default Images and local and net

Hi all



I have a cross platform problem. I have written a Delphi application that
stores images in a paradox table. I then upload the data to a MySQL table
and want to read the data out and display the image.

Now heres the problem, I can get images to read in and out on the Delphi
application ok. And I have code which will read and write images from a
table via PHP on the net using the MySQL table.



But the images will not work if I upload them via the Delphi application. On
both the paradox table and the MySQL table I am using a blob field.

Below I have shown the code used on both the Delphi program and the PHP code
so you can see what's going on.



Sorry about cross posting this message but its both a Delphi and PHP
problem, any help in any way would be great



Brian





DELPHI PROCEDURES TO ASSIGN THE IMAGES TO THE TABLE AND GET THEM FROM THE
TABLE



procedure TMain.ChangeImageBtnClick(Sender: TObject);

begin

AssignImageTable(Data.gigs.FieldByName('poster'),P oster);

end;



================================================== ===========



procedure AssignImageTable(table:TField; Image:Timage);

var

JPEG: TJPEGImage;

JPEGStream: TBlobStream;

begin

If Main.OpenPictureDialog.Execute then

begin

try

JPEG := TJPEGImage.Create;

JPEG.LoadFromFile(Main.OpenPictureDialog1.FileName );

Image.Picture.Assign(JPEG);

try

try

JPEGStream := TBlobStream.Create(TBlobField(table),bmWrite);

JPEG.SaveToStream(JPEGStream);

except

On E: Exception do

ShowMessage(E.Message);

end;

finally

JPEGStream.Free;

JPEGStream := nil;

end;

finally

JPEG.Free;

JPEG := nil;

end;

end;

end;



================================================== ===========



procedure TData. DataChange(Sender: TObject; Field: TField);

begin

GetImageFromDB(Data.gigs.FieldByName('poster'), Main.poster);

end;



================================================== ===========





procedure GetImageFromDB(dbfield:TField; Image:Timage);

var memStream: TMemoryStream;

JPEG: TJPEGImage;

begin

If not dbfield.IsNull then

begin

try

JPEG := TJPEGImage.Create;

memStream := TMemoryStream.Create;

TBlobField(dbfield).SaveToStream(memStream);

memStream.Seek(0,0);

JPEG.LoadFromStream(memStream);

Image.Picture.Assign(JPEG);

finally

JPEG.Free;

memStream.Free;

JPEG := nil;

memStream := nil;

end;

end else begin

Image.Picture.LoadFromFile(AppDir+'noimage.bmp');

end;

end;



================================================== ===========



PHP CODE THAT ASSIGNED AND SAVES IMAGES TO MYSQL TABLE



Insert the image into a MySQL table via PHP



<form method="post" action="insert.php" enctype="multipart/form-data">

<h1>Upload an Image File</h1>

<h3>Please fill in the details below to upload your file.

Fields shown in <font color="red">red</font> are mandatory.</h3>

<table>

<col span="1" align="right">



<tr>

<td><font color="red">Short description:</font></td>

<td><input type="text" name="short" size=50></td>

</tr>



<tr>

<td><font color="red">File:</font></td>

<td><input name="userfile" type="file"></td>

</tr>



<tr>

<td><input type="submit" value="Submit"></td>

</tr>

</table>

<input type="hidden" name="MAX_FILE_SIZE" value="30000">

</form>

<h3>Click <a href="index.php">here</a> to browse the images
instead.</h3>

</body>

</html>

<?php

}

else

{

$short = clean($short, 50);

$userfile = clean($userfile, 50);



if (!($connection = @ mysql_pconnect($hostName,

$username,

$password)))

showerror();



if (!mysql_select_db("files", $connection))

showerror();



// Was a file uploaded?

if (is_uploaded_file($userfile))

{



switch ($userfile_type)

{

case "image/gif";

$mimeName = "GIF Image";

break;

case "image/jpeg";

$mimeName = "JPEG Image";

break;

case "image/png";

$mimeName = "PNG Image";

break;

case "image/x-MS-bmp";

$mimeName = "Windows Bitmap";

break;

default:

$mimeName = "Unknown image type";

}



// Open the uploaded file

$file = fopen($userfile, "r");



// Read in the uploaded file

$fileContents = fread($file, filesize($userfile));



// Escape special characters in the file

$fileContents = AddSlashes($fileContents);

}

else

$fileContents = NULL;



$insertQuery = "INSERT INTO files VALUES (NULL, \"{$short}\",

\"{$userfile_type}\", \"{$mimeName}\", \"{$fileContents}\")";



if ((@ mysql_query ($insertQuery, $connection))

&& @ mysql_affected_rows() == 1)

header("Location: receipt.php?status=T&file="

. mysql_insert_id($connection));

else

header("Location: receipt.php?status=F&file="

. mysql_insert_id($connection));

} // if else empty()

?>



================================================== ===========





Get image from MySQL table via PHP



<?php // use this code to select which image you want

echo "<img src=\"view.php?file={$row["id"]}\">";

?>



<?php include 'db.inc'; $file = clean($file, 4); if (empty($file))
exit; if (!($connection = @ mysql_pconnect($hostName, $username,
$password))) showerror(); if (!mysql_select_db("files", $connection))
showerror(); $query = "SELECT mimeType, fileContents FROM files WHERE id
= $file"; if (!($result = @ mysql_query ($query,$connection))) showerror();
$data = @ mysql_fetch_array($result); if (!empty($data["fileContents"]))
{ // Output the MIME header header("Content-Type:
{$data["mimeType"]}"); // Output the image echo
$data["fileContents"]; }?>


Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 07:00 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0