gpt4 book ai didi

php - 为什么会出现mime类型与firefox、chrome不一致的问题?

转载 作者:可可西里 更新时间:2023-11-01 13:22:02 24 4
gpt4 key购买 nike

起初我很困惑为什么我的文件没有为某些用户上传,后来我发现是每个人都没有使用我正在测试的浏览器 chrome。

基本上我正在检查文件以确保他们只能上传 mp3。

这适用于 chrome,但不适用于 firefox。

if ($_FILES['uploaded']['type']=="audio/mp3")

这适用于 firefox,但不适用于 chrome。

$_FILES['uploaded']['type']=="audio/mpeg"

谁能解释为什么会这样?我认为这两种浏览器都能够理解或者...是否有任何其他浏览器我可能需要担心像这样敏感的 mime 类型?

编辑:如果 Pekka 的建议属实,那么检查特定 MIME 类型的最佳方法是什么?

最佳答案

根据 w3schools , audio/mpeg 是正确的类型。但没关系,MIME 类型可以变化,您在检查文件时绝对不能依赖它们。不一致是规则,也是意料之中的事。

要识别 MP3 文件,可能是 getid3包可以帮助你:

getID3() is a PHP script that extracts useful information from MP3s & other multimedia file formats.

编辑: IANA 有一个官方的 MIME 类型列表 here .那里没有提到 mp3,所以这是 Chrome 的错误行为。

编辑 2:在服务器端确定文件的 MIME 类型的最佳选择是 finfo延期。它试图通过“内容嗅探”来确定文件的类型,在数据的前几个字节中寻找某些文件类型的特定特征。在此过程中,MIME 类型也可能有所不同,但至少它们在同一台服务器上是一致的,因此您不会再遇到浏览器问题。

关于php - 为什么会出现mime类型与firefox、chrome不一致的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2214983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com