2013-08-01 3 views
2

Итак, я использовал несколько различных методов для проверки типа mime. Пользователь загружает файл, используя форму, я захватываю тип mime, если это приложение/zip, я разрешаю, если это что-то еще, я отрицаю это. Проблема в том, что что-то (браузеры, которые я предполагаю) меняет тип mime на «application/octet-stream»Проверка «Магических байтов» или Mime-типов в PHP?

Мне интересно, как еще я могу проверить файл .zip при загрузке формы.

Код:

$name = strtolower(end(explode('.', $filename))); 
    $accepted_types = array('application/zip', 'application/x-zip-compressed', 'multipart/x-zip', 'application/x-compressed'); 

    foreach($accepted_types as $good_type) { 
     if($good_type == $type) { 
      $okay = true; 
      break; 
     } else { 
      $okay = false; 
     } 
    } 
+0

возможно дубликат [Как найти мим-тип файла с PHP?] (HTTP : //stackoverflow.com/questions/134833/how-do-i-find-the-mime-type-of-a-file-with-php) – BlitZ

+0

не должно быть никаких изменений в типе содержимого файла для приложения октет-поток в сообщении формы. вы можете показать, как ваша обработка загрузки, пожалуйста, – DevZer0

+0

также вы можете сделать 'in_array ($ type, $ accepted_types);' вам не нужен цикл. – DevZer0

ответ