Неверный MIME-тип для загруженных ZIP-файлов

Как мне справиться с проверкой MIME-типа загруженного ZIP-файла в среде Linux и Windows?

Я создал ZIP-файл для целей тестирования, скачал еще один (первый результат Google) и использовал их в качестве аргументов следующего кода:

$finfo = new finfo( FILEINFO_MIME );

echo $finfo -> file( 'benchmark.zip' ), '<br />', $finfo -> file( 'css3menu.zip' ), '<br />';

echo mime_content_type( 'benchmark.zip' ), '<br />', mime_content_type( 'css3menu.zip' );

Он сообщил мне:

application/zip; charset=binary
application/zip; charset=binary
application/zip
application/zip

В обеих средах: Linux, использующий Apache, и Windows, со встроенным веб-сервером PHP.

После прочтения этот ответ Я тоже считала Применение / октет-поток как действительный, поэтому я добавил их обоих в свой обработчик загрузки.

Но загрузка не удалась, сообщив о неверном типе файла 🙁

Я проверил все, и это было правильно, поэтому я решил изолировать проблему с самой простой возможной реализацией загрузки (вместе с этим кодом отладки):

if( isset( $_POST['button'] ) ) {

print '<pre>'; print_r( $_FILES );

$finfo = new finfo( FILEINFO_MIME );

echo $finfo -> file( 'benchmark.zip' ), '<br />', $finfo -> file( 'css3menu.zip' ), '<br />';

echo mime_content_type( 'benchmark.zip' ), '<br />', mime_content_type( 'css3menu.zip' ), '<br />';
}

?>

<form enctype="multipart/form-data" action="http://localhost/test.php" method="post">

<input type="file" name="file[]" id="file" />

<input type="submit" name="button" value="Send" />

</form>

Тип MIME, сообщаемый FileInfo и mime_content_type (), был таким же, как и раньше, но тип возвращен индекс в $ _FILES Приложение / vnd.zend.serverconfig в среде Linux и менее желательным, хотя и действительным, Применение / октет-поток в винде.

Есть идеи, почему это происходит?

Стоит отметить, что я новичок в среде Linux, поэтому я не знал, как настроить веб-сервер, поэтому сначала я установил Zend Server, но позже я полностью удалил его и переустановил все вручную, используя apt-get.

0

Решение

После понимания того, что тип индекс предоставляется браузером, а не PHP, я протестировал в Google Chrome и получил правильный Применение / застежка-молния

Поэтому я решил, как Google решить эту проблему в Firefox, браузере, который я тестировал ранее, и все, что мне нужно было сделать, это удалить mimeTypes.rdf файл в папке профиля, расположенной в ~ / .Mozilla / светлячок /

0

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

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

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