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

0

Как обработать 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 возвращал application/vnd.zend.serverconfig в среде Linux и менее желательный, хотя и действительный, поток приложений/октетов в Windows,

Любые идеи, почему это происходит?

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

Теги:
zip
mime

1 ответ

0
Лучший ответ

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

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

  • 0
    На Firefox 48.0 и OSX файл mimeTypes.rdf находится здесь:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню