2009-04-21 4 views
2

Я пытаюсь проверить тип MIME загруженного файла в своем приложении PHP. Я загрузить файл, а затем сделать это, где $ файла путь к моему файлу:Параметр FILEINFO_MIME PHP возвращает пустую строку

$finfo = new finfo(FILEINFO_MIME); 
$mimetype = $finfo->file($file); 

В этой ситуации $ MimeType всегда пустая строка. Я тестировал несколько типов файлов (.jpg, .doc, .txt, .pdf), и он всегда пуст. Он должен возвращать что-то вроде «image/jpeg».

я отладки и изменил первую строку так, что фрагмент кода теперь это:

$finfo = new finfo(FILEINFO_NONE); 
$info = $finfo->file($file); 

В этой ситуации, когда я загрузил JPG, $ информация была такова: данные изображения в формате JPEG, JFIF стандарт 1.02 , Итак, теперь я знаю, что он правильно загружается в файл, но передача в FILEINFO_MIME не возвращает мне правильную строку mime.

Это происходит только на моем промежуточном сервере. На моем локальном сервере я получаю правильный тип mime. У кого-нибудь есть идеи, почему мой промежуточный сервер возвращает пустую строку для типа mime?

+1

ли возвращать пустую строку или FALSE? –

+2

Он возвращает пустую строку. – Pamela

ответ

0

Попробуйте это:

<?php 
$fi = new finfo(FILEINFO_MIME,'/usr/share/file/magic'); 
$mime_type = $fi->buffer(file_get_contents($file)); 
?> 
+1

Это также возвращает мне пустую строку. – Pamela

1

Я интересно, если магия файл правильно установлен на вашем сервере.

magic_file
Название волшебного файла базы данных, как правило, что-то вроде /path/to/magic.mime. Если не указано, используется переменная среды MAGIC. Если эта переменная не установлена, по умолчанию используется/usr/share/misc/magic. При необходимости добавляется суффикс .mime и/или .mgc.

Так как вы можете задать свой собственный файл С помощью последнего аргумента

$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); 
+1

Спасибо за предложение, но я все еще возвращаю пустую строку с этим. – Pamela

+1

Мой файл MIME находится в/usr/share/file/magic, но тот же результат тоже есть. – Pamela

0

Пробовали ли вы пример from the manual:

<?php 
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension 

    echo finfo_file($finfo, $filename) . "\n"; 

finfo_close($finfo); 
?> 
Смежные вопросы