2014-11-07 1 views
0

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

Я создал тестирования целей 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.

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

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

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

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> 

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

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

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

ответ

0

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

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

+0

на Firefox 48.0 и OSX, то Файл mimeTypes.rdf находится здесь: – Rob