Обнаружение MIME-типа не удается в PHP
У меня есть следующий код PHP, который показывает тип MIME загруженного файла.
file($_FILES['file']['tmp_name']));
} else{
?>
array (size=5)
'name' => string 'somefile.csv' (length=12)
'type' => string 'text/csv' (length=8)
'tmp_name' => string '/tmp/phpKiwqtu' (length=14)
'error' => int 0
'size' => int 3561
string 'text/x-fortran' (length=14)
Поэтому, конечно, тип MIME должен быть текст / CSV. Но используемый мной фреймворк (Symfony 1.4) использует метод fileinfo.
Также я протестировал немного дальше, кажется, что команда (на Ubuntu)file --mime-type somefile.csv
возвращаетсяsomefile.csv: text/x-fortran
и командаmimetype somefile.csv
возвращаетсяsomefile.csv: text/csv
, somefile.csv создается с помощью MSOffice (я нене знаю, имеет ли это значение). По-видимомуmimetype
использует удивительную базу данных MIME (http://freedesktop.org/wiki/Software/shared-mime-info), в то время какfile
не.
file
или жеmimetype
или нет?Кроме того, я не уверен, что делать здесь; мой загруженный файл неправильно отформатирован? Должен ли я использовать другую базу данных MIME? PHP прослушивается? Что здесь происходит?редактировать:
Причина, по которой она обнаруживается как программа на фортране, заключается в том, что файл somefile.csv содержит только следующее:
somecolumn;
C F;
Я считаю, что приведенное выше содержимое файла CSV является действительным, верно? Если поле содержит пробел, это поле не должно быть заключено в кавычки, верно?