beh, personalmente, prima di parlare/scrivere, mi documento ... evito di dare aria alla bocca per parlare o di dare "forza alle dita" per scrivere se non sono sicuro all'85% di quello che dico.Originariamente inviato da Shores
Comunque daniele_dll, NON è un buon consiglio di dirgli di rifiutare un upload perché non c'è il mimetype e quindi è malformato, perché equivale a dirgli che la sua maschera di upload non supporterà nessuna versione di IE (che sono TUTTE molto ballerine in questo aspetto) e che questa è una buona idea... Ora, capiamoci, neanche a me sta simpatico IE, ma di qui a dire che te ne puoi fregare di avere la compatibilità con IE su una cosa così cruciale come gli upload...![]()
Dunque:
1) Internet Explorer, OVVIAMENTE, manda il mime type, fa pure una prova in locale se non mi credi. Qui c'è l'output di un semplice var_dump di $_FILES con un file uploadato con IE8 e IE7 (è uguale) ... non ho potuto provare IE6 perché IETester esplode su Win7
Come puoi vedere funziona perfettamente, se leggi bene il mio primissimo consiglio è statocodice:array(5) { ["name"]=> string(12) "08032008.jpg" ["type"]=> string(11) "image/pjpeg" ["tmp_name"]=> string(74) "C:\Program Files\Apache Software Foundation\Apache2.2\php-temp\php77C5.tmp" ["error"]=> int(0) ["size"]=> int(398721) }
perché come puoi vedere tu stesso, per quest'immagine jpeg ie8 ha usato image/pjpeg.fatti stampare il contenuto di
$_FILES["foto_$i"]['type']
e vedi che ci mette dentro internet explorer ^^
2) Dai un occhio ai vari RFC c'è scritto che il browser deve fare del "suo meglio" per fornire sia il nome sia il tipo di contenuto. Inoltre c'è anche scritto che se il mime type non è riconosciuto deve essere inviato un application/octet-stream. Ora, anche se opzionale, i vari browser lo mandano quindi perché non utilizzarlo? Scartare gli upload che non contengono vuol dire scartare gli upload fatti da software che non sono i browser normali (ergo quelli che utilizzano gli utenti) ovvero ridurre, anche se di poco, tutti quei software che tentano di far danno.