【问题标题】:Mime type for zip file in Google ChromeGoogle Chrome 中 zip 文件的 Mime 类型
【发布时间】:2010-10-25 18:07:54
【问题描述】:

我在处理 a Symfony application 时发现 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

Google Chrome 中 zip 文件的 mime 类型是一个空字符串,我通过转储返回的 sfValidatorFile 对象发现了这一点。请注意,sfValidatorFile.type 是 "" 用于 zip 文件。

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

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

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

【问题讨论】:

  • 你能在某处设置断点并从请求中读取 mimetype 吗?

标签: google-chrome mime-types


【解决方案1】:

到目前为止,在 Google Chrome 中,zip 文件的 MIME 类型为 application/octet-stream。 :)

【讨论】:

  • 我们可以将 MIME 类型从 octet-stream 修改为 zip..?我们可以使用应用程序中的 chrome 或代码中的任何设置吗..?
  • 好像取决于操作系统,Mac上的chrome返回application/zip,win7 application/octet-stream和win8 application/x-zip-compressed
  • 你有这个的来源吗?
【解决方案2】:

这是 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.';}

【讨论】:

  • 您向 Google Chrome 报告了问题?
  • 文件数组中的名称字段由客户端传递,并且仅在客户端向您发送具有正确扩展名的文件时才有效。换句话说,它不值得信赖。
【解决方案3】:

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

一张票已在here打开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 2015-01-04
    • 1970-01-01
    • 2014-07-05
    • 2012-03-09
    • 2015-11-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多