ChatGPT解决这个技术问题 Extra ChatGPT

Which mime type should I use for mp3

I'm trying to decide which mime type to choose for returning mp3 data (served up by php)

according to this listing of mime types: http://www.webmaster-toolkit.com/mime-types.shtml

.mp3    audio/mpeg3
.mp3    audio/x-mpeg-3
.mp3    video/mpeg
.mp3    video/x-mpeg

What are the difference between these, and which should I use?


C
Community

Your best bet would be using the RFC defined mime-type audio/mpeg.


Chrome 26 knows better and uses audio/mp3... Go figure.
Here is the Chromium bug, he just turned 3 today. I'm sure he's going to stick around for a few more years, so smile and wish him a happy birthday. :)
@pollaris There is no such thing as multiple mime types, because a file is only of one type. Ideally, you would return audio/mpeg if you are returning an mp3 file or audio/wav if you are returning a wav file. You could use the generic application/octet-stream to indicate a binary file if you didn't want to code for returning the actual mime type, but then the browser might not treat the file the way you expect.
@jgillich - you were right. 6 years and can now ride a bicycle bugs.chromium.org/p/chromium/issues/detail?id=227004
The Chrome bug has been fixed! Not sure when it'll make it into Chrome.
E
Eugene Petakhin

I had a problem with mime types and where making tests for few file types. It looks like each browser sends it's variation of a mime type for a specific file. I was trying to upload mp3 and zip files with open source php class, that what I have found:

Firefox (mp3): audio/mpeg

Firefox (zip): application/zip

Chrome (mp3): audio/mp3

Chrome (zip): application/octet-stream

Opera (mp3): audio/mp3

Opera (zip): application/octet-stream

IE (mp3): audio/mpeg

IE (zip): application/x-zip-compressed

So if you need several file types to upload, you better make some tests so that every browser could upload a file and pass mime type check.


z
zessx

Use .mp3 audio/mpeg, that's the one I always used. I guess others are just aliases.


J
Johnny Zhao

You should always use audio/mpeg, because firefox cannot play audio/mpeg3 files


Firefox doesn't like audio/mp3 either
C
Community

The standard way is to use audio/mpeg which is something like this in your PHP header function ...

header('Content-Type: audio/mpeg');


g
garchompstomp

mp3 files sometimes throw strange mime types as per this answer: https://stackoverflow.com/a/2755288/14482130

If you are doing some user validation do not allow 'application/octet-stream' or 'application/x-zip-compressed' as suggested above since they can contain be .exe or other potentially dangerous files.

In order to validate when mime type gives a false negative you can use fleep as per this answer https://stackoverflow.com/a/52570299/14482130 to finish the validation.