.zip 的 XAMPP PHP MIME 类型错误

Posted

技术标签:

【中文标题】.zip 的 XAMPP PHP MIME 类型错误【英文标题】:XAMPP PHP MIME type wrong for .zip 【发布时间】:2012-06-29 08:01:35 【问题描述】:

我在 Windows XP 上使用 XAMPP 1.7.7 并上传 .zip 文件。

$_FILES shows:
array(1) 
["P24_File"]=>
array(5) 
["name"]=>
string(12) "File.zip"
["type"]=>
string(15) "unknown/unknown"
["tmp_name"]=>
string(22) "...\php1B.tmp"
["error"]=>
int(0)
["size"]=>
int(12927)


令人惊讶的是 finfo_file() 显示“application/zip; charset=binary”...

$_FILES 有什么问题?

【问题讨论】:

权限问题。 文件的 mime 类型,如果浏览器提供了此信息。一个例子是“image/gif”。然而,这种 mime 类型在 PHP 端没有被检查,因此不要认为它的价值是理所当然的。 【参考方案1】:

此信息由浏览器提供,与服务器无关。可能客户端的计算机没有安装 ZIP 实用程序,或者浏览器由于其他原因不知道 ZIP 文件类型。

因为它可能是伪造的(或不正确的,如您的示例),所以无论如何您都不能信任该信息。

finfo_file() 是这里值得信赖的来源。

【讨论】:

以上是关于.zip 的 XAMPP PHP MIME 类型错误的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中检查“魔术字节”或 Mime 类型?

PHP - 使用正确的 MIME 类型打开上传的 DOCX 文件

资源解释为图像,但在 xampp 中使用 MIME 类型 text/xml 传输?

压缩文件上传的 mime 类型,如 zip、rar?

下载流媒体不返回真实文件。错误的内容类型或 mime?

Zip Mime 类型似乎无法识别