Buscar extensões de arquivo por tipo MIME
Converta um tipo de conteúdo MIME nas extensões de arquivo normalmente esperadas por pessoas e sistemas.
Executar grátis
A consulta aceita valores como application/json, image/jpeg ou text/html; charset=utf-8, normaliza maiúsculas e minúsculas, remove parâmetros MIME e retorna uma extensão preferencial e todas as alternativas comuns da tabela integrada. Isso ajuda quando um cabeçalho de resposta, registro de upload ou URI de dados informa o tipo de mídia, mas não fornece um nome de arquivo confiável.
Converta um tipo de conteúdo em um sufixo de arquivo prático
Respostas HTTP, anexos de e-mail, armazenamentos de objetos e URIs de dados frequentemente identificam uma carga com um tipo MIME, mas deixam o nome do arquivo vazio ou pouco confiável. Esta consulta oferece à sua aplicação um sufixo prático. Envie um valor no formato conhecido tipo/subtipo, como image/jpeg, para receber uma extensão principal e uma lista ordenada de alternativas reconhecidas. O valor principal é o padrão convencional para criar um nome, enquanto a lista completa ajuda a comparar um nome existente ou exibir formas aceitas. As extensões são retornadas sem ponto inicial, permitindo que você as concatene, compare ou formate conforme suas regras. O serviço não examina os bytes nem afirma que um cabeçalho comprova a autenticidade do arquivo. Ele apenas inverte um mapeamento de extensão para MIME usando uma tabela integrada de formatos web, documentos, arquivos compactados, fontes, áudio, imagens e vídeo.
Entenda a normalização, os aliases e as várias extensões
Valores reais de tipo de conteúdo raramente são tão organizados quanto exemplos de registro. Servidores podem usar letras maiúsculas ou acrescentar parâmetros como codificação. A consulta remove espaços externos, converte o tipo de mídia para minúsculas e ignora o conteúdo após o primeiro ponto e vírgula. Assim, Text/HTML; charset=UTF-8 produz o mesmo resultado que text/html. Antes de consultar a tabela, ela valida a sintaxe normalizada de tipo/subtipo, separando uma entrada malformada de um tipo MIME válido, porém não compatível. Alguns formatos têm vários sufixos familiares. Para image/jpeg, por exemplo, o resultado preferencial é jpg e as alternativas incluem jpeg e jpe. A ordem é intencional e estável, portanto você pode usar primary_extension sem criar regras próprias. Os aliases content_type e mime também são aceitos, embora mime_type seja o campo canônico mostrado nos clientes gerados.
Use o resultado com segurança em fluxos de entrada e download
Um fluxo comum recebe um corpo e um cabeçalho Content-Type, escolhe uma extensão e armazena o corpo com um nome gerado. Use primary_extension nesse último componente, mas mantenha a validação do conteúdo separada. Metadados MIME podem estar ausentes, errados ou sob controle de quem enviou o arquivo; adicionar um sufixo plausível não torna bytes não confiáveis seguros. Se o seu sistema executar, visualizar ou publicar o resultado, examine primeiro o conteúdo e aplique a política de segurança adequada. A lista completa de extensões é útil para validação: normalize o sufixo do nome existente e verifique se ele aparece nas alternativas, em vez de rejeitar um jpeg legítimo porque o padrão preferido é jpg. Tipos desconhecidos geram um erro explícito, pois adivinhar pelo subtipo pode criar nomes enganosos ou perigosos. Como a tabela acompanha a capacidade, a mesma entrada sempre produz a mesma saída. A execução via API custa US$ 0,002 por item.
Casos de uso
Nomear uma resposta baixada
Escolha um sufixo convencional quando uma resposta HTTP trouxer Content-Type, mas nenhum nome Content-Disposition utilizável.
Conferir metadados de upload
Compare o sufixo do arquivo enviado com todas as extensões comuns associadas ao tipo MIME declarado.
Exportar objetos binários armazenados
Reconstrua nomes legíveis a partir de metadados que preservam o tipo MIME, mas não o nome original.
Perguntas frequentes
A extensão retornada inclui um ponto?
Não. As extensões são retornadas como jpg ou html, sem ponto inicial.
O que acontece com charset e outros parâmetros MIME?
Os parâmetros após o primeiro ponto e vírgula são ignorados; portanto, text/html; charset=utf-8 é consultado como text/html.
Por que um tipo MIME pode retornar várias extensões?
Alguns formatos possuem vários sufixos estabelecidos. O resultado indica um preferencial e mantém as alternativas comuns em ordem estável.
Isso verifica o conteúdo do arquivo?
Não. A ferramenta apenas mapeia os metadados MIME declarados. Examine bytes não confiáveis separadamente antes de executar, visualizar ou publicar.
O que ocorre quando o tipo MIME não está na tabela?
A consulta retorna um erro de entrada inválida em vez de adivinhar uma extensão pelo subtipo.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/extension-from-mime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mime_type":"application/json; charset=utf-8"}'const res = await fetch("https://api.kit.forhosting.com/dev/extension-from-mime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mime_type": "application/json; charset=utf-8"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/extension-from-mime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mime_type": "application/json; charset=utf-8"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/extension-from-mime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mime_type":"application/json; charset=utf-8"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mime_type":"application/json; charset=utf-8"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/extension-from-mime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"mime_type": "application/json; charset=utf-8"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.extension_from_mime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |