Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting MIME type in PHP

I'm looking for the best (possible on most PHP 5.2 installs and still actively developed) way to detect a files MIME type in PHP.

I'm aware of the mime_content_type() method and the Fileinfo extension, however mime_content_type() is unreliable and deprecated, and Fileinfo doesn't come in a "standard" PHP (5.2) install.

Do I have any other options?

like image 915
Jack Sleight Avatar asked Mar 16 '09 20:03

Jack Sleight


2 Answers

(lol sorry I realized this was asked months ago as I was finishing up. oh well. might as well add this...)

If it's a *nix server you could use file command.

file -bi <filepath>

You'd have to use "exec" in PHP to do that I guess? I'm new to PHP so don't quote me on this but...

$content_type = exec("file -bi " . escapeshellarg($filepath));

I didn't test it so you might need to escape the path string and format the output.

Dunno if this will be more reliable than the other methods.

like image 165
EMPraptor Avatar answered Sep 24 '22 21:09

EMPraptor


Have you looked into this PEAR package?

http://pear.php.net/package/MIME_Type

like image 21
Jeremy DeGroot Avatar answered Sep 24 '22 21:09

Jeremy DeGroot