我正在尝试决定选择哪种 mime 类型来返回 mp3 数据(由 php 提供)
根据这个 mime 类型列表:http://www.webmaster-toolkit.com/mime-types.shtml
.mp3 audio/mpeg3
.mp3 audio/x-mpeg-3
.mp3 video/mpeg
.mp3 video/x-mpeg
这些有什么区别,我应该使用哪个?
我遇到了 mime 类型以及对少数文件类型进行测试的问题。看起来每个浏览器都会发送特定文件的 mime 类型的变体。我试图用开源 php 类上传 mp3 和 zip 文件,我发现:
火狐 (mp3): 音频/mpeg
火狐 (zip): 应用程序/zip
铬 (mp3):音频/mp3
Chrome (zip):应用程序/八位字节流
歌剧(mp3):音频/mp3
Opera (zip):应用程序/八位字节流
IE (mp3):音频/mpeg
IE (zip): application/x-zip-compressed
因此,如果您需要上传多种文件类型,最好进行一些测试,以便每个浏览器都可以上传文件并通过 mime 类型检查。
使用.mp3 audio/mpeg
,这是我一直使用的。我猜其他人只是别名。
您应该始终使用音频/mpeg,因为 firefox 无法播放音频/mpeg3 文件
根据这个答案,mp3 文件有时会抛出奇怪的 mime 类型:https://stackoverflow.com/a/2755288/14482130
如果您正在执行某些用户验证,请不要像上面建议的那样允许“application/octet-stream”或“application/x-zip-compressed”,因为它们可能包含 .exe 或其他潜在危险文件。
为了验证 mime 类型何时给出假阴性,您可以按照此答案 https://stackoverflow.com/a/52570299/14482130 使用 flep 来完成验证。
audio/mp3
... 看图。audio/mpeg
;如果返回的是 wav 文件,则返回audio/wav
。如果您不想编写代码以返回实际的 mime 类型,则可以使用通用application/octet-stream
来指示二进制文件,但是浏览器可能不会按照您期望的方式处理文件。