The problem: users will be uploading images that will be stored in a database. I have no control over whether they are sending gifs, bmps, jpgs, etc., I need an accurate method of determining the mime type of the incoming file so I can serve the image correctly.

Using CGI.pm, I could try this:

$type = $query->uploadInfo($filename)->{'Content-Type'};
However, browsers like to play "MIMEtype roulette", so this is not an optimal solution.

I've also found File::MMagic, but I have no idea how reliable this is. Has anyone used it before? If so, what are your impressions?

What I have works so far (we're only using jpegs, so that makes it easier), but once I let users at it, I need this to be as accurate as possible.

Any suggestions, or am I taking an entirely wrong approach to this?

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just go the the link and check out our stats.


In reply to Opinions on determining mime type by Ovid

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.