Replacement for File::mime() in Laravel 4 (to get mime type from file extension)

laravel, laravel-4, php

Solution

One solution I've found is to use the Symfony HttpFoundation File class (which is already included as a dependency in Laravel 4):

$file = new Symfony\Component\HttpFoundation\File\File($path);
$mime = $file->getMimeType();

And in fact the File class uses the Symfony MimeTypeGuesser class so this also works:

$guesser = Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser::getInstance();
echo $guesser->guess($path);

But unfortunately I'm getting unexpected results: I'm getting text/plain instead of text/css when passing a path to a css file.

Problem

Laravel 3 had a File::mime() method which made it easy to get a file's mime type from its extension: ``` $extension = File::extension($path); $mime = File::mime($extension); ``` On upgrading to Laravel 4 I get an error: Call to undefined method Illuminate\Filesystem\Filesystem::mime() I also can't see any mention of mime types in the Filesystem API docs. What's the recommended way to get a file's mime type in Laravel 4 (please note this is not a user-uploaded file)?

Original source

Related problems