拡張子からMIMEタイプを調べる
ダウンロードがapplication/octet-streamで返ったり、アップロードフォームにファイルを拒否されたり。正しいContent-Typeの値を早く見つける方法です。
このガイドで使う道具
やりたいこと
サーバーはimage/webpやapplication/pdfのようなMIMEタイプでファイル種別を表します。アップロードのaccept指定・Content-Typeヘッダの設定・汎用blobになるダウンロードの調査で必要になります。
調べ方
MIMEタイプ一覧を開き、拡張子またはキーワードを入力します。表にMIMEタイプ・代表的な拡張子・簡単な注記が出ます。検索が広すぎる場合はimage・audio・video・text・applicationの分類で絞ります。
- 拡張子→タイプ: .webmで検索するとvideo/webmが返ります。
- タイプ→拡張子: video/mp4で検索すると.mp4と.m4vが見えます。
- 同じ拡張子でも系によって別タイプになることがあります。迷ったらファイルシグネチャ判定で実バイトを確認します。
具体例
iPhoneの.heic写真を受け付けるHTMLの<input accept=…>を作ります。heicで検索するとimage/heic(と兄弟のimage/heif)が出るので、accept="image/heic,image/heif"とすればiOSが実際に使う両方の表記をカバーできます。
対応範囲
一般的なタイプに絞った一覧で、IANAレジストリ全量ではなくファイル内容の判定もしません。同じ拡張子で中身が違うファイルもあり得ます。バイト自体が重要ならhexビューアやファイルシグネチャで確認してください。