2015-07-10 1 views
0

Я пытаюсь получить тип mime изображения профиля, который они находятся в формате user_id.jpg или gif или png, я экспериментировал с этим кодом, но он не работает.Получение типа mime

function detectFileMimeType($filename='') 
{ 
    $filename = escapeshellcmd($filename); 
    $command = "file -b --mime-type -m /usr/share/misc/magic {$filename}"; 

    $mimeType = shell_exec($command); 

    return trim($mimeType); 
} 

function get_avatar($image, $user_id, $account) 
{ 
    $imgurl ="http://mypage/files/pictures/picture-" . ($user_id, $mimeType) . ".jpg"; 

    if (!is_imgurl_good($imgurl)) { 
    $imgurl = "http://mypage/sites/all/themes/simple_custom/user.png"; 
    } 
    return $imgurl; 
} 
+0

Вы рассмотрели [функции, предназначенные для этого] (http://php.net/manual/en/ref.fileinfo.php)? –

+0

Я взял этот код с той самой страницы, которую вы предоставили. – user123

+0

Вы взяли его с устаревшей страницы 'mime_content_type()'. –

ответ

0

Вы должны быть в состоянии получить тип MIME файла довольно легко со встроенной функции, предоставляемые PHP -

function detectFileMimeType($filename='') 
    $finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type 
    $fileglob = glob($filename); 
    echo finfo_file($finfo, $fileglob); 
    finfo_close($finfo); 
} 

http://php.net/manual/en/function.finfo-file.php

http://php.net/manual/en/function.glob.php

+0

Я не знаю, как объедините его в мой существующий код. Мне нужно расширение, пока оно жестко закодировано .jpg, но некоторые пользователи имеют gif, а также png – user123

0

А также finfo который работает отлично, немного проще использовать PHP getimagesize, так как это вернет MIME, как извлеченные из файла:

$file = "blah/blahblah/bubbles.jpg"; 
$fileTypeData = getimagesize($file); 
$fileTypeData['mime'] = The Mime type of the image file. 

 Смежные вопросы

  • Нет связанных вопросов^_^