2015-09-28 29 views
5

Podczas sprawdzania typów plików MIME przesyłanych plików w przeglądarce krawędzi Microsoft 10-tek, otrzymuję ten typ MIME dla .doc plików:Pierwsze Microsoft 10 browser Krawędź typów MIME php

application/octet-stream 

Widocznie to wskazuje „arbitralne dane binarne „: Do I need Content-Type: application/octet-stream for file download?

na innych przeglądarkach dostaję application/msword

Czy istnieje nowy sposób są obsługiwane typy MIME dla plików .doc na przeglądarce krawędzi, a może i innych typów MIME muszę być świadomy?

Aktualizacja:

byłem chwytając typu MIME używając PHP $_FILES['uploadName']['type']

+0

pachnie bug - jak o zgłoszenie go –

+2

Nie należy chwycić typu MIME od danych podanych w '$ _FILE' gdyż jest to bardzo niestabilny i się do interpretacji, ponieważ występują. Zamiast tego wykonaj nową analizę przesłanego pliku ** tymczasowego **, Użyj 'finfo()' lub podobnego. – Martin

Odpowiedz

4

Okazało się, że za pomocą tego zamiast uzyskać prawidłowy typ MIME:

$finfo = new finfo(FILEINFO_MIME_TYPE); 
$mimeType = $finfo->file($_FILES['uploadName']['tmp_name'][$key]); 

i jako Martin wspomniano w komentarzu powyżej:

Nie powinieneś pobierać typu MIME z danych podanych w $ _FILE jako , co jest bardzo niestabilne i wymaga interpretacji, ponieważ doświadczasz tego jako . Zamiast tego wykonaj nową analizę przesłanego tymczasowego pliku , Użyj finfo() lub podobnego.

+0

Powinienem przeczytać twoją odpowiedź przed moim komentarzem powyżej, no cóż ... Cieszę się, że znalazłeś bardziej wiarygodny sposób robienia tego – Martin

+0

Tak, to jest dobry komentarz i warte zobaczenia ludzie, jeśli kiedykolwiek tu przyjadą, dodam do mojego odpowiedź. – Andrew