Re: best way to determine (MIME) content type of a stream of bytes?
| From: | Ashley Sheridan | Date: | Mon, 08 Mar 2010 16:14:11 +0000 |
| Subject: | Re: best way to determine (MIME) content type of a stream of bytes? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-302602@lists.php.net to get a copy of this message | ||
On Mon, 2010-03-08 at 10:57 -0500, Robert P. J. Day wrote:
> hi, i'm interested in the most comprehensive way to determine the
> content type of a stream of bytes that's been uploaded to a PHP
> script? assuming that the bytes are uploaded simply via a POST
> parameter, i can see that there are a couple ways to do it:
>
> * getimagesize()
> * FileInfo
>
> i've been doing some testing this morning and a few video formats
> handed to FileInfo come back as "application/octet-stream" which isn't
> particularly informative. and i want to support as many different
> formats of image, audio and video as possible.
>
> so ... what's the best way? oh, by the way, when i used fileinfo, i
> didn't bother handing over a magic file. i'm starting to think that
> would make a difference. and is there a noticeable advantage to
> upgrading to PHP 5.3 since the server (centos 5.4) is currently
> running only PHP 5.1.6. thanks.
>
> rday
> --
>
> ========================================================================
> Robert P. J. Day Waterloo, Ontario, CANADA
>
> Linux Consulting, Training and Kernel Pedantry.
>
> Web page:
> http://crashcourse.ca
> Twitter: ‘iJ+ǽ
> ‘H;Ââc»èhttp://twitter.com/rpjday
> ========================================================================
>
If you're wanting to grab details about a clip, what about using mplayer
for dealing with video clips. It has more than a few command line
options that can return various levels of detail about a media file. You
could use the extension of the clip as a hint about what way you can
determine a files exact type. So, if a file came in with a jpg, png or
gif extension, you could use GD functions to determine if it's really an
image. If it's a .avi, .mpg, .mp4, .mp3, .ogg, you could use mplayer to
deal with it.
This does seem to ba a bit of an area where PHP is lacking. Even the
manual pages are cryptic. It seems to suggest that the Mime functions
which we should use in-place of deprecated ones themselves rely on those
same deprecated functions!
Having said that, I've had good results from using "file -f filename" on
Linux, which is using version 5.03 on my system.
Thanks,
Ash
http://www.ashleysheridan.co.uk