apache — неверный / нежелательный MIME-тип ogv из PHP fileinfo

Я попробовал это на большинстве серверов, которые у меня есть, и PHP, кажется, возвращает application/ogg для ogv видео файлов. Это странно, потому что конфигурационный файл Apache MIME четко перечисляет video/ogg (также не желательно, но, по крайней мере, это имело бы смысл, поскольку информация должна поступать оттуда). Первоначально я столкнулся с этой проблемой в Responsive File Manager, но смог воспроизвести ее самостоятельно.

Код:

$fileinfo = finfo_open(FILEINFO_MIME);
$mime_type = finfo_file($fileinfo, $file);
finfo_close($fileinfo);

var_dump($mime_type);

Выход:

string(31) "application/ogg; charset=binary"

Откуда поступает эта информация и как я могу ее изменить?

Ввод директив .htaccess, похоже, совсем не помогает. Возможно, также имеет значение, что я использую cPanel / WHM, но не смог найти никакой дополнительной соответствующей конфигурации. Кроме того, cPanel также дает video/ogg для огв, как и Apache.

0

Решение

finfo_file использует Linux file команда: https://linux.die.net/man/1/file

Выход из finfo_file:

application/ogg; charset=binary

Выход из file -i sample.ogv

application/ogg; charset=binary

Одним из решений является использование apache_lookup_uri Похоже, это может работать для вас, так как вы работаете на Apache: http://php.net/apache_lookup_uri

var_dump( apache_lookup_uri('sample.ogv') );

object(stdClass)#1 (16) {
["status"]=>
int(200)
["the_request"]=>
string(27) "GET /tmp/test.php HTTP/1.1"["method"]=>
string(3) "GET"["mtime"]=>
int(0)
["clength"]=>
int(0)
["chunked"]=>
int(0)
["content_type"]=>
string(9) "video/ogg"["no_cache"]=>
int(0)
["no_local_copy"]=>
int(1)
["unparsed_uri"]=>
string(16) "/mime/sample.ogv"["uri"]=>
string(16) "/mime/sample.ogv"["filename"]=>
string(48) "/tmp/sample.ogv"["allowed"]=>
int(0)
["sent_bodyct"]=>
int(0)
["bytes_sent"]=>
int(0)
["request_time"]=>
int(1504107700)
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]