473,228 Members | 1,830 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,228 software developers and data experts.

MIME attachments stored in mySQL

Hello,

I am parsing a mailbox using the imap functions, pulling out images
attached and putting them into mySQL as BLOB fields. I am having
problems displaying images once they are stored in mySQL, and I think
it may be related to the way I store them.

The following line of code is called after an attachment has been
identified as a GIF attachment:

$rawimage = addslashes(imap_fetchbody($mbox,$m,$part_c));
....where $mbox is the imap link and so forth.

Testing to make sure I am actually pulling info out, a debug line like:
print_r($rawimage);

....displays a bunch of chars that are the image attachment data, and a
line like:

print_r(base64_decode($rawimage));

....displays other, different chars.
Looks good so far - I'm definitely pulling images out as raw data.

So I INSERT the $rawimage into my blob field.

However, on the display page, I send the headers like:
header("Content-type: image/gif");
[get image from database and store it in a var called $image_from_db]
echo $image_from_db;

But I get a broken image...

So I try print_r($image_from_db) on this page (after removing the
header line) and it looks like the chars from the tests before - it's
the same data.

base64_decode($image_from_db) does not make the image display properly,
either, but printing it as such shows all those chars again.

I think I do not understand how base64 encoding and addslashes works
between MIME, php and mySQL. Anybody have any ideas? How should I
format the data when I pull it out of MIME (in terms of base64
decoding), how should I insert it (addslashes is correct?) and how
should I echo it when I pull it out into the displaying php image
generation page?
I have a feeling someone has had this problem before out there :)

Jul 17 '05 #1
6 2785
Hello Matt,

Looks like it could be an addslash problem. Here is the link for your
reference : http://us4.php.net/addslashes

If you site already has magic_quotes_gpc set (=On) in php.ini (which is
the default), your using addslashes() adds an extra set of slashes to
you already quoted data. So the data's original significance is lost.

In your code, you can check to see if the magic_quotes option is set
using get_magic_quotes_gpc() and then use addslashes().

Why don't you try your code without the addslashes()? Everything you
have described seems correct and should give you your required outcome.
If after removing addslashes(), it still does not work, try doing a
stripslashes() on the retrieved image before calling base64_decode().
Thank you,
--Kartic

Jul 17 '05 #2
Thanks Kartic-- but doesnt magicquotes only affect GET and POSTand
COOKIE data? This data is pulled using the imap_fetchbody()
function...

Jul 17 '05 #3
Ooops...Yes, you are right.

I meant magic_quote_runtime :
http://us2.php.net/manual/en/ref.inf...quotes-runtime and
the corresponding get_magic_quotes_runtime().

Thanks,
--Kartic

Jul 17 '05 #4

And also, take a peek at the user notes for
http://us4.php.net/base64_encode

There is some interesting stuff there that people had trouble with
(similar to yours)
(Look for mightymrj at hotmail dot com, entry dated 28-Oct-2004 11:35.)
Thank you,
--Kartic

Jul 17 '05 #5
Yes, I am missing something here...

Turned off magic_quotes_runtime per the suggestion on the base64_encode
man page.

Still corrupted images...

So I try this:
$f = fopen("...etc");
fwrite($f, base64_decode($rawimage));
fclose($f);

...and the pics are well-formed and viewable.
The answer lies in the slashes somewhere, you're right...

Jul 17 '05 #6
Hello,

I found this article that does something similar to what you are trying
to do...(the article uses an image upload page).. have fun.

http://www.onlamp.com/pub/a/onlamp/2...09/webdb2.html

One more thought crosses my mind...why don't you base64_decode() your
MIME image before you store it into the database table?
Thanks,
--Kartic

Jul 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Sugapablo | last post by:
Is there any PHP function that will allow me to determine the MIME type of a blob stored in MySQL? Specifically, if I'm storing an image as a blob in MySQL, is there any PHP function that can...
4
by: Alberto | last post by:
I am struggling with the php mail function so to allow a multipart mime settings where both the message and any set of attachments can be allowed. Teorically, I'd know how to do. I build up my...
3
by: Erik Rosenbach | last post by:
I have a question about how to parse out mime from a message. I have email messages that are stored in a database table and these messages have mime headers embedded within them. How can I parse...
0
by: bill ramsay | last post by:
Hello I am writing a program that sends simple text files to a remote device. the files have to be in the format textX.dat where X = numbers in the range 0 up to 10 depending upon the...
1
by: John B. Kim | last post by:
I am working on the code below: ****************************************************** use strict; use MIME::Lite; use Net::SMTP; my $from = 'steve@earthlink.net'; my @addweek1 =...
1
by: NM | last post by:
I need an advise on how to proceed. My understanding is that .net doesn't support mime and attachment web services. First question, is that true? If thats true, is there any tip or how-to...
3
by: flo | last post by:
hi, i have to develop a web service client (must be .net, currently i'm using c# with wse3) for a java service. the java service uses mime attachments for up- and download of files. i googled...
0
by: andreas.baus | last post by:
Hello. I'm trying to build a client using .NET/C# that is capable of communicating with an existing Webservice written in Java using Apache Axis. Now, I've encountered a problem trying to...
3
by: Steven Allport | last post by:
I am working on processing eml email message using the email module (python 2.5), on files exported from an Outlook PST file, to extract the composite parts of the email. In most instances this...
0
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: jianzs | last post by:
Introduction Cloud-native applications are conventionally identified as those designed and nurtured on cloud infrastructure. Such applications, rooted in cloud technologies, skillfully benefit from...
0
by: fareedcanada | last post by:
Hello I am trying to split number on their count. suppose i have 121314151617 (12cnt) then number should be split like 12,13,14,15,16,17 and if 11314151617 (11cnt) then should be split like...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.