拡張子からMIMEタイプを検索
.jsonと入力するとapplication/json、pngならimage/pngが分かります。先頭の点はあってもなくてもよく、大文字でも小文字でも同じです。jsoonのような打ち間違いには、推測した種類ではなく近い綴りを3つ示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 拡張子
- .json
- MIMEタイプ
- application/json
正規化された拡張子と標準MIMEタイプが返されます。未登録の拡張子には、対応している近い綴りを添えた明確なエラーを返すため、手早い確認にも自動処理の決定的な検証にも利用できます。
拡張子から対応するメディアタイプへ
ファイル拡張子は名前付けの慣習ですが、MIMEタイプはソフトウェアがコンテンツを説明するために使う構造化された識別子です。拡張子だけでも、先頭に点を付けても入力できます。検索前に前後の空白を除去し、大文字と小文字を統一します。
結果には正規化済みの拡張子とMIMEタイプを別々に含めるため、文章を解析し直さず、そのまま確認したり次の処理へ渡したりできます。この処理はファイルを調査せず、ファイル名と実際のバイト列が一致するとも保証しません。入力した拡張子に通常対応する、登録済みまたは広く定着したメディアタイプは何か、という限定された決定的な問いに答えます。
正規化、エラー、近い候補の仕組みを理解します
拡張子は使いやすい形式で受け付けます。任意の先頭の点を取り除いた後は、英字と数字だけを使用できます。パス、完全なファイル名、ワイルドカード、スラッシュ、複合した記号は拒否します。
そこから暗黙に接尾辞を抜き出すと、意図しない入力が正しい値に見えてしまうためです。形式が正しくても未登録の拡張子であれば、推測したMIMEタイプではなく、無効な入力としてエラーを返します。同時に、綴りの距離と安定した同順位処理によって決定的に並べた、対応済みの近い拡張子を3件表示します。
候補は情報であり、自動修正ではありません。MIMEタイプを得るには、目的の拡張子を明示して再送信してください。この設計により、連携処理の予測可能性を保ち、入力ミスがもっともらしい誤ったContent-Typeヘッダーに変わることを防ぎます。
活用例
Content-Typeヘッダーを設定します
生成ファイルや静的配信ファイルのヘッダーを設定する前に、想定されるメディアタイプを確認できます。
アップロード規則を検証します
許可する拡張子を期待するMIMEタイプに対応付け、ファイル名の確認と内容の検査を分けて実施できます。
形式の不一致を調査します
ファイルの接尾辞と、サーバー、保存オブジェクト、添付ファイルが示すメディアタイプを比較できます。
よくある質問
先頭の点を含めてもよいですか?
はい。.pngとpngのような値は、同じ拡張子として正規化されます。
アップロードしたファイルを調査しますか?
いいえ。 入力された拡張子だけを対応付けます。バイト列やシグネチャを読み取らず、内容も検証しません。
拡張子が未登録の場合はどうなりますか?
未登録の拡張子を示す無効入力エラーと、対応済みの近い候補3件を返します。
大文字の拡張子にも対応していますか?
はい。 大文字と小文字を正規化するため、JPG、jpg、.JPGは同じ結果になります。
結果をセキュリティ検査として使えますか?
単独では使えません。 ファイル名は内容と異なる場合があるため、重要な検証では実際の内容も検査または解析してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/web/mime-type-lookup \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"extension":".json"}'const res = await fetch("https://api.kit.forhosting.com/web/mime-type-lookup", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"extension": ".json"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/mime-type-lookup",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"extension": ".json"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/mime-type-lookup", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"extension":".json"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"extension":".json"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/mime-type-lookup", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"extension": ".json"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.mime_type_lookup",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
このMIMEタイプ検索は、既知のファイル拡張子を、HTTPヘッダー、アップロード、メール添付、コンテンツ検証で使われるメディアタイプへ変換します。.jsonやpngのように、先頭の点を付けても付けなくても入力できます。
ファイルの接尾辞をHTTPメディアタイプへ変換します
ブラウザー、Webサーバー、API、オブジェクトストレージ、メールクライアントは、application/json、image/png、text/cssなどの値を参照して、リソースをどのように扱うかを決めることがあります。この検索は、一般的な文書、画像、音声、動画、アーカイブ、フォント、Web形式について標準的な対応関係を返します。
正規化、エラー、近い候補の仕組みを理解します
JSON、json、.jsonはいずれも同じ項目として検索されます。jpgg、jsoon、xslxのような誤りは、人には意図が明らかでも、APIが暗黙に選ぶべきではありません。
結果を安全に利用します
返されたMIMEタイプは、拡張子を既知の情報源として扱う設定、メタデータ、許可リストの準備、文書化などの処理に適しています。たとえば、ビルドツールで生成物に割り当てたContent-Typeを確認したり、アップロードフォームで許可する接尾辞と期待するメディアタイプを対応付けたり、サポート担当者が長い登録一覧を調べずに未知のオフィス形式を確認したりできます。ただし、ファイルは改名でき、拡張子が内容と異なる場合もあるため、セキュリティが重要なシステムではファイルシグネチャの検査や内容の解析も行ってください。また、HTTPレスポンスがURLの接尾辞とは異なるタイプを返す場合があります。公開中のリソースを監査するときは、実際のレスポンスヘッダーを使用してください。この検索は完全にローカルで動作し、ネットワークへ接続せず、入力値を保存せず、同じ入力には常に同じ結果を返します。このページのブラウザー機能は無料で、自動化されたAPIリクエストは1回あたり$0.002です。
技術的な質問
API検索の料金はいくらですか?
APIリクエストは1回あたり$0.002で、このページのブラウザー機能は無料です。