在处理Symfony应用程序时,我发现zip文件的mime类型中有一个奇怪的问题。
根据w3school,zip文件的mime类型是application/zip
。我也这么认为。
但是当我用IE在我的Symfony应用程序中上传一个zip文件时,这个压缩文件的mime类型是application/x-zip-compressed
。当我在Firefox中上传一个zip文件时,该zip文件的mime类型是application/octet-stream
。
他们中没有一个像我想相信的那样是application/zip
。
最奇怪的行为就是谷歌Chrome。当我在Google中上传一个压缩文件时,我无法确定正确的mime类型。虽然我是很确定这是而不是
application/zip
application/x-zip
application/octet-stream
application/x-zip-compressed
Google中zip文件的mime类型是一个空字符串,我通过转储返回的sfValidatorFile
对象发现了这一点。注意,sfValidatorFile.type
是"“表示zip文件。
但是为jpeg文件返回的sfValidatorFile.type
对象是jpeg
。
在我看来,无论是Symfony还是Google都有一个bug
进一步的信息: Gmail似乎将zip文件的mime类型解释为Google中的application/zip。这是正确的行为。似乎证实了这是Symfony的窃听器。
发布于 2010-08-29 11:09:39
到目前为止,在中,MIME类型的压缩文件是application/octet-stream。:)
发布于 2009-09-13 14:00:28
这是谷歌Chrome的bug,而不是Symfony。我对谷歌Chrome的ZIP也有同样的问题。
我有自己的应用程序用php编写。
当您编写echo $_FILES['yournameattr']['type'];
时,当您上传一个zip文件时,它返回空字符串,而当您上传一个gif或jpeg文件时,它返回图像/jpeg或image/gif。
我有谷歌Chrome版本3.0.195.6 (测试版)。
虽然如果您需要快速的解决方案,您可以使用preg_match检查文件的扩展名(zip与否)。
if (preg_match('/(.*)\.zip/',$_FILES['yournameattr']['name'])) {echo 'This is zip.';}
发布于 2009-05-13 06:16:27
在我看来,在Symfony里有个bug。
这里已经开了一张票。
https://stackoverflow.com/questions/856013
复制相似问题