Parser multipart/form-data
Cole um body multipart/form-data com seu boundary e veja cada parte (Content-Disposition, filename, Content-Type, tamanho).
Ler um corpo multipart/form-data
Formulário com arquivo usa multipart/form-data, e o corpo resultante é uma sequência de partes separadas por um marcador declarado no Content-Type. Cada parte tem cabeçalhos próprios e depois seu conteúdo. Cole o corpo e a página separa as partes, mostrando nome do campo, nome do arquivo e tipo declarado de cada uma.
O marcador tem regra: ele aparece no corpo precedido de dois hifens, e o final da mensagem é o marcador com dois hifens também no fim. Por isso ele precisa ser uma sequência que não ocorra dentro de nenhuma parte — se ocorrer, o corpo é cortado no lugar errado. É a razão de os navegadores gerarem marcador longo e aleatório em vez de algo legível.
A informação que decide o processamento vem do Content-Disposition de cada parte: o parâmetro name é o nome do campo do formulário, e a presença de filename é o que distingue arquivo de campo de texto. Vale desconfiar do filename recebido — ele vem do cliente, pode conter caminho e é o vetor clássico de gravar arquivo fora da pasta pretendida.
Perguntas frequentes
Por que não enviar formulário com arquivo em JSON?
Qual a diferença para application/x-www-form-urlencoded?
Como aparecem acentos no nome do arquivo?
Ferramentas Relacionadas
Parser de Data URI
Quebra uma data: URI em mediatype, parâmetros, flag base64 e payload. Mostra o tamanho final em bytes do conteúdo decodificado.
Parser de Content-Type
Decompõe um header Content-Type em mediatype, charset, boundary e demais parâmetros. Útil para depurar APIs e uploads.
Parser de UUID
Decompõe um UUID em versão (1, 3, 4, 5, 6, 7, 8), variant, e quando aplicável, timestamp e nó. Suporta UUIDs com e sem traços.
Parser de Cache-Control
Lê um header Cache-Control e mostra cada diretiva (max-age, no-cache, public, immutable, stale-while-revalidate) com explicação.
Analisador de URL
Decomponha qualquer URL em seus componentes: protocolo, host, pathname, parâmetros de query e hash. Inspecione query strings individualmente.
Parser de Especificador NPM
Analisa um especificador de pacote NPM (lodash, @scope/[email protected], github:user/repo) e extrai nome, escopo, versão e tipo (registry/git/url/file).