2009-05-13 8 views
17

Ho scoperto un problema strano nel tipo mime del file zip quando lavoravo su a Symfony application.Tipo MIME per file zip in Google Chrome

Secondo w3school, il tipo MIME per file zip è application/zip. Questo è ciò che credo anch'io.

Ma quando carico un file zip nell'app Symfony con IE, il tipo mime del file zip è application/x-zip-compressed. Quando carico un file zip in Firefox, il tipo mime di quel file zip è application/octet-stream.

Nessuno di questi è application/zip come mi piacerebbe credere.

Il comportamento più strano di tutti è Google Chrome. Quando carico un file zip in Google Chrome, non riesco a determinare il tipo mime corretto per questo. Anche se ho am abbastanza sicuro che si tratta di non

application/zip 
application/x-zip 
application/octet-stream 
application/x-zip-compressed 

il tipo MIME per file zip in Google Chrome è una stringa vuota, come ho scoperto dal dumping l'oggetto sfValidatorFile restituito. Notare che lo è "" per il file zip.

Ma l'oggetto sfValidatorFile.type restituito per un file jpeg è jpeg.

Mi sembra che ci sia un bug in uno Symfony o Google Chrome

informazioni Futher: Sembra che Gmail interpreta tipo mime del file zip come application/zip in Google Chrome. Questo è il comportamento corretto. Sembra confermare che è l'insetto di Symfony.

+0

È possibile impostare un punto di interruzione da qualche parte e leggere il mimetype dalla richiesta? –

+0

Sarebbe una buona idea – Graviton

risposta

24

A partire da ora, il tipo MIME di un file zip è application/octet-stream in Google Chrome. :)

+0

possiamo modificare il tipo MIME da octet-stream a zip ..? c'è qualche impostazione in chrome o codice nell'applicazione che possiamo usare ..? – Praditha

+1

Sembra che dipenda dal sistema operativo, chrome su Mac restituisce application/zip, su win7 application/octet-stream e su win8 application/x-zip-compresso – sstauross

+0

Chrome 51.0.2704.103 sul mio laptop Windows 10 restituisce nuovamente una stringa vuota. .... – Arthur

0

Mi sembra che ci sia un bug in Symfony.

Un biglietto è stato aperto a here.

3

Questo bug di Google Chrome non è Symfony. Ho lo stesso problema con il mimo ZIP di Google Chrome.

Ho la mia applicazione scritta in php.

Quando si scrive echo $_FILES['yournameattr']['type']; restituisce una stringa vuota quando si carica un file zip ma quando si carica un file gif o jpeg restituisce immagine/jpeg o image/gif.

Ho Google Chrome versione 3.0.195.6 (beta).

Sebbene sia necessaria una soluzione rapida, è possibile utilizzare preg_match per controllare l'estensione del file (zip o no).

if (preg_match('/(.*)\.zip/',$_FILES['yournameattr']['name'])) {echo 'This is zip.';} 
+1

Hai segnalato il problema a Google Chrome? – Graviton

+0

Il campo nome nell'array di file viene passato dal client e valido solo nella misura in cui il client ti ha inviato un file con l'estensione corretta. In altre parole, non è affidabile. – Matthew

Problemi correlati