18

当我处理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 中上传 zip 文件时,我无法确定它的正确 mime 类型。虽然我确定它不是

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

sfValidatorFileGoogle Chrome 中 zip 文件的 mime 类型是一个空字符串,正如我通过转储返回的对象发现的那样。注意sfValidatorFile.typezip 文件是 ""。

但是sfValidatorFile.type为 jpeg 文件返回的对象是jpeg.

在我看来,Symfony 或 Google Chrome 中都存在错误

更多信息:Gmail 似乎将 zip 文件的 mime 类型解释为 Google Chrome 中的 application/zip。这是正确的行为。似乎确认这是 Symfony 的错误。

4

3 回答 3

26

截至目前,一个 zip 文件的 MIME 类型是Google Chrome 中的application/octet-stream。:)

于 2010-08-29T11:09:39.890 回答
5

这是 Google Chrome 的错误,而不是 Symfony。我对 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.';}
于 2009-09-13T14:00:28.480 回答
0

在我看来,Symfony 中有一个错误。

一张票已在此处打开。

于 2009-05-13T06:16:27.303 回答