Forum Moderators: coopster

Message Too Old, No Replies

IE image/pjpeg instead of image/jpeg

Why does it do this?

         

benj0323

6:55 am on Nov 30, 2004 (gmt 0)

10+ Year Member



I have an instance in PHP where I need to grab the extension for a certain mime type. So what I did was just grab all of the mime types and extensions from the mime.types file on my apache server. Well the mime.types file does not have image/pjpeg it has image/jpeg. Why would I need image/pjpeg? Well because when uploading a jpg in IE $_FILES['field_name']['type'] = image/pjpeg.

This is a problem because when I upload a jpg in every other browser besides IE $_FILES['field_name']['type'] = image/jpeg like it supposed to. When I upload a jpg in IE $_FILES['field_name']['type'] = image/pjpeg. So it goes through the mime.types file and doesnt find image/pjeg and doesnt return an extension. I use this extension for many things. Is there anyways to solve this problem without having hack together my code so it accepts image/pjpeg?

Thanks for your help.

jatar_k

9:56 pm on Nov 30, 2004 (gmt 0)

WebmasterWorld Administrator 10+ Year Member



I wandered around a bit and found more than a few mentions of IE6 treating all jpegs as type=>image/pjpeg

I don't see an option if this is the case, which it seems to be.

benj0323

1:38 am on Dec 1, 2004 (gmt 0)

10+ Year Member



What genius at microsoft decided to rename the mime type for jpgs? That is completely rediculous. I guess the only thing I can do here is just go by the file headers or the extension. $_FILES['file_name']['type'] is useless now.

coopster

12:16 pm on Dec 1, 2004 (gmt 0)

WebmasterWorld Administrator 10+ Year Member



You could maintain your own mime-types file and append them to the Apache mime-types in your script (I'm assuming you are reading them into an array or something).

Another option is to simply read the first five characters of the type to see if it is an image

if (substr($_FILES['field_name']['type'], 0, 5) == 'image')) {
and use the existing extension as you said.