Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Using convert_uuencode to store images in MySQL DB

Posted by JimL (JimL), 3 September 2004
Currently I have a page written in PHP which automatically reads images from the "photos" subdirectory and writes the correct HTML to the browser.

(See: http://www.baatzracing.com/photos/)

The PHP utilises the opendir() function, and works quite nicely.

However, the text next to the image is simply the image name minus any extension (I use regular expressions to remove the .jpg or .gif extensions etc.) This method requires the image name to also be it's description (for example I would need to name an image "photo of racing incident at Silverstone.jpg" for the text to read "Photo of racing incident at Silverstone"). This is very clumsy, and not, in my opinion, a very effective way of dealing with image text.

However, instead of storing the images in a photos folder, I am thinking instead about storing the images in a MySQL database table (which would allow a field for image description). I am considering using convert_uuencode() to convert the image into a form which is storable in the database, and convert_uudecode() to "reconstitute" the image in order to present to the browser.

Has anyone any thoughts on this? Would it work?

Cheers,  Jim



Posted by JimL (JimL), 3 September 2004
Correction: I used the readdir() function to read in the images from the "photos" subfolder.

Cheers,  Jim

Posted by admin (Graham Ellis), 3 September 2004
Jim, Store the images in a table with a datatype of blob. Blobs are designed to hold true binary information - I've done it and it works well if you get the "addslashes" right when you put the data in.   You can then have a column of text with your labels.

I'm out of the office until Monday morning, and I think I have an example there.  If an example would be useful even with the few days delay, please post a follow up and I'll see what I can find.



Posted by JimL (JimL), 6 September 2004
Hi Graham, thanks for that!

However, it occured to me later that I might have problems getting my stored photos to appear on the website.

If I am relying on the HTML code <img src="photo.jpg">, then surely I will have to have the photo as a physical file on the webserver?

Whilst I like the idea of storing the photos in a database, unless I can get them to appear in my webpages, I can't see that the database idea is going to be worth doing.

Any thoughts?

Cheers,  Jim

Posted by admin (Graham Ellis), 6 September 2004
You can very easily write a PHP script that will connect to your database, read an image and output it. Place that script in the IMG tag in the SRC= attribute.   Example to follow ...

Edit - I have bumped the thread "Random image in a web page" to the top of this board as it covers much of what you need

Posted by JimL (JimL), 9 September 2004
Hi Graham!

So all I need to do is place the blob data (extracted from the database) directly into the src attribute?

Cheers,  Jim

Posted by admin (Graham Ellis), 9 September 2004
It's fairly straightforward but not quite that simple.  Have a look at the "random image" thread and instead of reading from a random file, read from the database ...

Posted by JimL (JimL), 10 September 2004
Hi Graham,

understood!

I need to pull my image in using <img src="image.php4">, and image.php4 will be like the following:-

<?php
header("content-type: image/jpeg\n");

/* My code to extract the image blob data from the database goes here */

?>

So effectively image.php4 will mimic a real image sent via HTTP.

However, in the same page I want to refer to many images using this method. (In fact, I want to automatically insert all the images in my database via this method).

Short of having a plethora of  image(x).php4 files (one for each image stored in the database), how can I pass variables into my image.php4 script?

There is probably a very simple answer to this, but at the moment I'm scratching my head to find one. The only method I know of passing variables from one script to another is via the get or post methods within forms.

Cheers,  Jim

Posted by admin (Graham Ellis), 10 September 2004
You can write something like:

<img src="image.php4?name=fred">

and then reference $_GET[name] in your PHP script

Posted by JimL (JimL), 10 September 2004
Marvellous!

Many thanks!

Jim



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho