web-dev-qa-db-ja.com

GoogleのZipファイルのMIMEタイプChrome

Symfonyアプリケーション で作業しているときに、ZipファイルのMIMEタイプに奇妙な問題を発見しました。

w3school によると、ZipファイルのMIMEタイプはapplication/Zip。これも私が信じていることです。

しかし、IEを使用してSymfonyアプリにZipファイルをアップロードすると、そのZipファイルのMIMEタイプはapplication/x-Zip-compressed。 FirefoxでZipファイルをアップロードすると、そのZipファイルのMIMEタイプはapplication/octet-stream

それらのどれもapplication/Zip信じたいと思います。

すべての最も奇妙な動作は、Google Chromeです。 Google ChromeでZipファイルをアップロードすると、そのファイルの正しいMIMEタイプを判別できません。私amではない

application/Zip   
application/x-Zip
application/octet-stream
application/x-Zip-compressed

GoogleでのZipファイルのMIMEタイプChromeは、返されたsfValidatorFileオブジェクトをダンプして見つけたので、空の文字列です。sfValidatorFile.typeはZipファイルの「」です。

しかし sfValidatorFile.type jpegファイルに対して返されるオブジェクトはjpegです。

SymfonyまたはGoogle Chromeのいずれかにバグがあるように思えます

詳細情報:Gmailは、ZipファイルのMIMEタイプをGoogle Chromeのアプリケーション/ Zipとして解釈するようです。これは正しい動作です。 Symfonyのバグであることを確認しているようです。

17
Graviton

現在、ZipファイルのMIMEタイプは、Google Chromeではapplication/octet-streamです。 :)

25
Salman for Hire

これはSymfonyではなくGoogle Chromeのバグです。 Google ChromeのZip mimeにも同じ問題があります。

私は自分のアプリケーションをphpで作成しています。

あなたが書くときecho $_FILES['yournameattr']['type']; Zipファイルをアップロードすると空の文字列が返されますが、gifまたはjpegファイルをアップロードするとimage/jpegまたはimage/gifが返されます。

Google Chromeバージョン3.0.195.6(ベータ版)です。

高速なソリューションが必要な場合でも、preg_matchを使用してファイルの拡張子(Zipかどうか)を確認できます。

if (preg_match('/(.*)\.Zip/',$_FILES['yournameattr']['name'])) {echo 'This is Zip.';}
3
DedicatedChop

Symfonyにバグがあるように思えます。

ここ でチケットが開かれました。

0
Graviton