- Mime content type не работает
- «Видео в формате MIME не поддерживается браузером»: причины возникновения и методология устранения неполадки
- Что являет собой параметр MIME
- Причины возникновения неполадки
- «Формат MIME не найден»: что делать
- Подведение итогов
- mime_content_type
- Описание
- Список параметров
- Возвращаемые значения
- Ошибки
- Примеры
- Смотрите также
- User Contributed Notes 21 notes
Mime content type не работает
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Источник
«Видео в формате MIME не поддерживается браузером»: причины возникновения и методология устранения неполадки
Доступ к интернет-ресурсам на компьютерах и современных гаджетах необходим для браузера и многих приложений. Для получения интересующей информации в интернете достаточно ввести запрос в поисковике и получить результат. Это сопровождается множеством процессов, задач и условий, которые невидимы для человека, но может сопровождать определёнными ошибками и сбоями, при возникновении программных неполадок в функциональности браузера. В этой статье расскажем об ошибке, не позволяющей просматривать непосредственно в браузере объекты в видеоформате, с сообщением о том, что обозреватель не поддерживает формат MIME, рассмотрим причины возникновения неполадки и варианты её устранения.
Как исправить ошибку воспроизведения формата MIME браузером.
Что являет собой параметр MIME
Чтобы разобраться в причинах возникновения ошибки и вариантах её устранения, необходимо объяснить, что собой представляет формат MIME, в чём его особенность, которая позволит понять причины невозможности беспрепятственной эксплуатации функциональности браузера.
MIME ( Multipurpose Internet Mail Extensions — многоцелевые расширения интернет-почты) — стандарт, описывающий передачу различных типов данных по электронной почте, а также, в общем случае, спецификация для кодирования информации и форматирования сообщений таким образом, чтобы их можно было пересылать по Интернету.
Так как видео- и медиаконтент представляет собой данные, имеющие разные структурные типы, определённые сайты, при некорректности работы параметра MIME, выдают информацию, что файл не поддерживается обозревателем, а, соответственно, и недоступен к просмотру. Рассмотрим подробно причины, способные спровоцировать ошибку, в зависимости от которых варьируется вариант решения.
Причины возникновения неполадки
Суть ошибки «Формат MIME не поддерживается» выражается в невозможности идентифицировать браузером данные определённого сайта. Неполадка чаще всего возникает при попытке пользователя загрузить медиаконтент, или же просмотреть любой файловый элемент в активном режиме, где задействован для воспроизведения и декодирования формат этого типа. Зачастую фактор, спровоцировавший ошибку, когда видео в поддерживаемом формате MIME не воспроизводиться, заключается в устаревании, техническом и программном, используемых браузером утилит, расширений и кодеков. В свою очередь, устаревание, как причина сбоя, подразумевает невозможность расшифровать браузером специфические кодеки, применяемые на большинстве популярных сайтов для декодирования. За этот критерий функциональности отвечает Media Player от Windows совместно с кодеком H264.
Нередко причиной ошибки воспроизведения файлов в поддерживаемом MIME формате, является предварительное обновление браузера, принудительное или автоматическое, с использованием устаревших ресурсов, а также загрузка программ с системными ошибками. Подобные сбои возникают не только на пиратских и малоизвестных сайтах, но и на популярных ресурсах: причиной могут быть серверные неполадки.
В качестве причины возникновения ошибки также может быть высокоуровневая антивирусная защита, установленная на компьютере. Объясняется ошибка принципом загрузки файлов, поддерживающих этот формат: по умолчанию ресурсы такого типа подлежат автоматическому запуску, что воспринимается антивирусами как сомнительный и опасный контент. Соответственно, вслед за восприятием антивирусным приложением данных, как вредоносных, следует их оперативная блокировка. С подобной неполадкой часто сталкиваются пользователи, в качестве браузера использующие Mozilla Firefox, однако, проблема может возникать и на других, работающих по этой же технологии воспроизведения контента. Реже всего это встречается на браузере Google Chrome. Предоставляем дальше пошаговый инструктаж, что делать, если формат MIME не поддерживается Firefox, или другим браузером, работающим по аналогичной технологии.
«Формат MIME не найден»: что делать
Первый, и самый простой метод, попытаться устранить ошибку заключается в изменении формата открываемого видеоконтента с HTLM5 на Flash. Такая возможность поддерживается не всеми сайтами, однако, где есть вариант переключения, результат может достигаться простым нажатием мышки на видео и выбором в выпадающем списке пункта «Открыть видео» и подтверждением изменения типа воспроизведения. Если этот вариант не дал результата, дальнейшие действия стоит осуществлять так:
- Попробовать открыть видеофайл в другом браузере.
- Попытаться решить проблему последовательным перезапуском браузера и компьютера.
- Провести чистку браузера от накопившегося «мусора», в виде истории посещений и кэшированных элементов. Сделать это можно как вручную, так и посредством специальных утилит.
- Временно отключить антивирусное приложение. Но лучше так не делать.
- Обновить браузер до последней версии.
- Обновить Adobe Flash, или же установить, при его отсутствии. Дополнительно потребуется загрузить и установить на ПК Microsoft Media Feature Pack.
- Проверить наличие штатного Media Player, и обновить его при необходимости, или же установить, если он отсутствует. Можно также установить другой видеоплеер, например, VLC, установка которого может помочь ликвидировать ошибку.
Если эти варианты не дали результата и вам дальше показывается сообщение «Видео MIME не поддерживается», стоит перейти к более кардинальному методу устранения неполадки, вмешательством в работу программного обеспечения IIS, входящего в состав Windows как элемента для раскрытия возможностей веб-серверов. Инструкция по работе с этим диспетчером выглядит следующим образом:
- Через «Панель управления» перейти в категорию задач «Администрирование», с последующим открытием вкладки «Диспетчер IIS».
- Пользователю откроется список выполняемых задач диспетчером, среди которых надо найти и выбрать строку под названием «Типы MIME», а в правой колонке окна подтвердить действие «Добавить».
- Вам откроется окно с расширениями и типами MIME. В списке потребуется выбрать расширения webm и mp4, с указанием в графе «Тип» параметров video/webm и video/mp4 соответственно.
- Остаётся только сохранить изменения кнопкой «ОК» и последующей перезагрузкой ПК, с целью вступления изменений в силу.
Иногда в списке задач «Администрирования» отсутствует диспетчер IIS, тогда нужно его включитьь перед выполнением описанных изменений. Для этого необходимо зайти в каталог «Программы и компоненты системы» через «Панель управления», выбрать в левом столбце открывшегося окна позицию «Включить или отключить компоненты». Пользователю откроется список всех программ и утилит, доступных на ПК, среди которых нужно найти и выбрать установкой галочки пункт «Службы IIS», подтвердив кнопкой «ОК». После этого диспетчер автоматически появится в каталоге «Администрирования», что позволит осуществить добавление расширений и типов описанным методом.
Подведение итогов
Часто проблема с воспроизведением данных, использующих MIME, решается элементарным обновлением утилит, даже без вмешательства в настройки работы служб IIS. Если же все перечисленные в статье варианты устранения ошибки не дали результатов, тогда, вероятней всего, проблема кроется в самом сайте.
Источник
mime_content_type
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
mime_content_type — Определяет MIME-тип содержимого файла
Описание
Возвращает MIME-тип содержимого файла, используя для определения информацию из файла magic.mime .
Список параметров
Путь к проверяемому файлу.
Возвращаемые значения
Возвращает тип содержимого в формате MIME, например text/plain или application/octet-stream или false в случае возникновения ошибки.
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примеры
Пример #1 Пример mime_content_type()
Результат выполнения данного примера:
Смотрите также
User Contributed Notes 21 notes
Fast generation of uptodate mime types:
function generateUpToDateMimeArray ( $url ) <
$s =array();
foreach(@ explode ( «\n» ,@ file_get_contents ( $url ))as $x )
if(isset( $x [ 0 ])&& $x [ 0 ]!== ‘#’ && preg_match_all ( ‘#([^\s]+)#’ , $x , $out )&&isset( $out [ 1 ])&&( $c = count ( $out [ 1 ]))> 1 )
for( $i = 1 ; $i $c ; $i ++)
$s []= ‘ \» . $out [ 1 ][ $i ]. ‘\’ => \» . $out [ 1 ][ 0 ]. ‘\» ;
return @ sort ( $s )? ‘$mime_types = array(
‘ . implode ( $s , ‘,
‘ ). ‘
);’ : false ;
>
echo
generateUpToDateMimeArray ( APACHE_MIME_TYPES_URL );
?>
Output:
$mime_types = array(
‘123’ => ‘application/vnd.lotus-1-2-3’,
‘3dml’ => ‘text/vnd.in3d.3dml’,
‘3g2’ => ‘video/3gpp2’,
‘3gp’ => ‘video/3gpp’,
‘7z’ => ‘application/x-7z-compressed’,
‘aab’ => ‘application/x-authorware-bin’,
‘aac’ => ‘audio/x-aac’,
‘aam’ => ‘application/x-authorware-map’,
‘aas’ => ‘application/x-authorware-seg’,
.
There is a composer package that will do this:
https://github.com/ralouphie/mimey
= new \ Mimey \ MimeTypes ;
// Convert extension to MIME type:
$mimes -> getMimeType ( ‘json’ ); // application/json
// Convert MIME type to extension:
$mimes -> getExtension ( ‘application/json’ ); // json
For me mime_content_type didn’t work in Linux before I added
to php.ini (remember to find the correct path to mime.magic)
Lukas V is IMO missing some point. The MIME type of a file may not be corresponding to the file suffix.
Imagine someone would obfuscate some PHP code in a .gif file, the file suffix would be ‘GIF’ but the MIME would be text/plain or even text/html.
Another example is files fetched via a distant server (wget / fopen / file / fsockopen. ). The server can issue an error, i.e. 404 Not Found, wich again is text/html, whatever you save the file to (download_archive.rar).
His provided function should begin by the test of the function existancy like :
function MIMEalternative($file)
<
if(function_exists(‘mime_content_type’))
return mime_content_type($file);
else
return ($file);
>
Regarding serkanyersen’s example : It is advisable to change the regular expression to something more precise like
This makes sure that only the last few characters are taken. The original expression would not work if the filename is a relative path.
if(! function_exists ( ‘mime_content_type’ )) <
<>
function mime_content_type ( $filename ) <
‘txt’ => ‘text/plain’ ,
‘htm’ => ‘text/html’ ,
‘html’ => ‘text/html’ ,
‘php’ => ‘text/html’ ,
‘css’ => ‘text/css’ ,
‘js’ => ‘application/javascript’ ,
‘json’ => ‘application/json’ ,
‘xml’ => ‘application/xml’ ,
‘swf’ => ‘application/x-shockwave-flash’ ,
‘flv’ => ‘video/x-flv’ ,
// images
‘png’ => ‘image/png’ ,
‘jpe’ => ‘image/jpeg’ ,
‘jpeg’ => ‘image/jpeg’ ,
‘jpg’ => ‘image/jpeg’ ,
‘gif’ => ‘image/gif’ ,
‘bmp’ => ‘image/bmp’ ,
‘ico’ => ‘image/vnd.microsoft.icon’ ,
‘tiff’ => ‘image/tiff’ ,
‘tif’ => ‘image/tiff’ ,
‘svg’ => ‘image/svg+xml’ ,
‘svgz’ => ‘image/svg+xml’ ,
// archives
‘zip’ => ‘application/zip’ ,
‘rar’ => ‘application/x-rar-compressed’ ,
‘exe’ => ‘application/x-msdownload’ ,
‘msi’ => ‘application/x-msdownload’ ,
‘cab’ => ‘application/vnd.ms-cab-compressed’ ,
// audio/video
‘mp3’ => ‘audio/mpeg’ ,
‘qt’ => ‘video/quicktime’ ,
‘mov’ => ‘video/quicktime’ ,
// adobe
‘pdf’ => ‘application/pdf’ ,
‘psd’ => ‘image/vnd.adobe.photoshop’ ,
‘ai’ => ‘application/postscript’ ,
‘eps’ => ‘application/postscript’ ,
‘ps’ => ‘application/postscript’ ,
// ms office
‘doc’ => ‘application/msword’ ,
‘rtf’ => ‘application/rtf’ ,
‘xls’ => ‘application/vnd.ms-excel’ ,
‘ppt’ => ‘application/vnd.ms-powerpoint’ ,
// open office
‘odt’ => ‘application/vnd.oasis.opendocument.text’ ,
‘ods’ => ‘application/vnd.oasis.opendocument.spreadsheet’ ,
);
$ext = strtolower ( array_pop ( explode ( ‘.’ , $filename )));
if ( array_key_exists ( $ext , $mime_types )) <
return $mime_types [ $ext ];
>
elseif ( function_exists ( ‘finfo_open’ )) <
$finfo = finfo_open ( FILEINFO_MIME );
$mimetype = finfo_file ( $finfo , $filename );
finfo_close ( $finfo );
return $mimetype ;
>
else <
return ‘application/octet-stream’ ;
>
>
>
?>
using
function detectFileMimeType ( $filename = » )
<
$filename = escapeshellcmd ( $filename );
$command = «file -b —mime-type -m /usr/share/misc/magic < $filename >» ;
$mimeType = shell_exec ( $command );
return trim ( $mimeType );
>
?>
should work on most shared linux hosts without errors. It should also work on Windows hosts with msysgit installed.
Here’s a simple function to return MIME types, based on the Apache mime.types file. [The one in my previous submission, which has since been replaced by this one] only works properly if mime.types is formatted as Windows text. The updated version below corrects this problem. Thanks to Mike for pointing this out.
function get_mime_type ( $filename , $mimePath = ‘../etc’ ) <
$fileext = substr ( strrchr ( $filename , ‘.’ ), 1 );
if (empty( $fileext )) return ( false );
$regex = «/^([\w\+\-\.\/]+)\s+(\w+\s)*( $fileext \s)/i» ;
$lines = file ( » $mimePath /mime.types» );
foreach( $lines as $line ) <
if ( substr ( $line , 0 , 1 ) == ‘#’ ) continue; // skip comments
$line = rtrim ( $line ) . » » ;
if (! preg_match ( $regex , $line , $matches )) continue; // no match to the extension
return ( $matches [ 1 ]);
>
return ( false ); // no match at all
>
?>
Notes:
[1] Requires mime.types file distributed with Apache (normally found at ServerRoot/conf/mime.types). If you are using shared hosting, download the file with the Apache distro and then upload it to a directory on your web server that php has access to.
[2] First param is the filename (required). Second parameter is path to mime.types file (optional; defaults to home/etc/).
[3] Based on MIME types registered with IANA (http://www.iana.org/assignments/media-types/index.html). Recognizes 630 extensions associated with 498 MIME types.
[4] Asserts MIME type based on filename extension. Does not examine the actual file; the file does not even have to exist.
[5] Examples of use:
>> echo get_mime_type(‘myFile.xml’);
>> application/xml
>> echo get_mime_type(‘myPath/myFile.js’);
>> application/javascript
>> echo get_mime_type(‘myPresentation.ppt’);
>> application/vnd.ms-powerpoint
>> echo get_mime_type(‘http://mySite.com/myPage.php);
>> application/x-httpd-php
>> echo get_mime_type(‘myPicture.jpg’);
>> image/jpeg
>> echo get_mime_type(‘myMusic.mp3’);
>> audio/mpeg
and so on.
To create an associative array containing MIME types, use:
function get_mime_array ( $mimePath = ‘../etc’ )
<
$regex = «/([\w\+\-\.\/]+)\t+([\w\s]+)/i» ;
$lines = file ( » $mimePath /mime.types» , FILE_IGNORE_NEW_LINES );
foreach( $lines as $line ) <
if ( substr ( $line , 0 , 1 ) == ‘#’ ) continue; // skip comments
if (! preg_match ( $regex , $line , $matches )) continue; // skip mime types w/o any extensions
$mime = $matches [ 1 ];
$extensions = explode ( » » , $matches [ 2 ]);
foreach( $extensions as $ext ) $mimeArray [ trim ( $ext )] = $mime ;
>
return ( $mimeArray );
>
?>
On Windows, PHP 7.0.30 gave the error message «Fatal error: Uncaught Error: Call to undefined function mime_content_type()». I saw the following interesting line in my Apache configuration:
#LoadModule mime_magic_module modules/mod_mime_magic.so
so I tried uncommenting it and restarting the Apache service, but still got the same error. A Web search shows that this function is deprecated. It appears to have been removed from PHP. Not sure why, but can be worked around with a user function.
The correct little correction:
exec will return the mime with a newline at the end, the trim() should be called with the result of exec, not the other way around.
if ( ! function_exists ( ‘mime_content_type ‘ ) )
<
function mime_content_type ( $f )
<
return trim ( exec ( ‘file -bi ‘ . escapeshellarg ( $f ) ) ) ;
>
>
I added these two lines to my magic.mime file:
0 string \ / x — httpd — php
0 string \ xml text / xml
The first one may not work if » is not at the very beginning of your file , e . g ., if some HTML preceeds the first bit of PHP code . The second one should work because » * should * be the first thing in every XML file .
// Here is a working version of a function that fetches the meme types from apache’s built in mime list and creates an array of which the keys are the file extensions:
function generateUpToDateMimeArray($url) <
$return = array();
$mimes = file_get_contents(‘http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types’); // make sure that allow_url_fopen is enabled!
preg_match_all(‘#^([^\s]<2,>?)\s+(.+?)$#ism’, $mimes, $matches, PREG_SET_ORDER);
foreach ($matches as $match) <
$exts = split(» «, $match[2]);
foreach ($exts as $ext) <
$return[$ext]=$match[1];
>
>
return $return;
>
$typeMime = generateUpToDateMimeArray();
echo $typeMime[‘gif’];
I also had issues with this function.
The issue was that it would almost always return «text/plain».
echo ini_get(‘mime_magic.magicfile’); // returns /etc/httpd/conf/magic
I found that I needed the OS’ magic.mime file instead.
You can either copy it to the existing location, or update your php.ini, you cannot use ini_set().
[root@blade conf]# mv magic magic.old
[root@blade conf]# cp /usr/share/magic.mime magic
[root@blade conf]# apachectl graceful
Note: you will see that I have gracefully restarted apache to ensure it has taken affect.
Источник