search

Found

info Visão geral

Gere um cabeçalho Content-Disposition conforme RFC 6266/5987. Combina o filename ASCII com um filename* UTF-8 e avisa sobre caracteres não ASCII ou aspas.

📘 Como usar

  1. Escolha attachment para forçar o download ou inline para o navegador exibir
  2. Digite um nome ASCII e, se preciso, um nome UTF-8
  3. Adicione tamanho e datas opcionais e confira o cabeçalho gerado

Construtor de Cabeçalho HTTP Content-Disposition

attachment força o download; inline deixa o navegador exibir

Fallback ASCII. Clientes antigos precisam dele

Saída em UTF-8 percent-encoded conforme RFC 5987

Cabeçalho gerado

Content-Disposition: attachment; filename="report.pdf"
Copiado
Article

Construtor de Cabeçalho HTTP Content-Disposition | filename e filename* juntos

Componha um cabeçalho Content-Disposition conforme RFC 6266 e RFC 5987. A ferramenta combina o filename ASCII com o filename* de RFC 5987 em uma única saída e avisa sobre caracteres não ASCII ou aspas que os geradores rápidos costumam ignorar. Feita para desenvolvedores back-end que escrevem endpoints de download.

💡 Sobre esta ferramenta

Se você colocar um nome com acentos direto em filename="relatório.pdf", alguns clientes mostram texto ilegível na caixa de salvar. O parâmetro filename só foi pensado para ASCII, então a correção é enviar também filename* em UTF-8 percent-encoded conforme RFC 5987. Quando os dois estão presentes, os clientes que entendem filename* o preferem e ignoram o filename, mantido como fallback para clientes antigos.

Esta ferramenta escreve os dois ao mesmo tempo. Você informa o nome ASCII de reserva e o nome UTF-8, e ela gera algo como filename="relatorio.pdf"; filename*=UTF-8''relat%C3%B3rio.pdf sem que você codifique byte a byte. Também trata os parâmetros opcionais size, creation-date e modification-date, formatando datas como HTTP-date (IMF-fixdate) para um cabeçalho válido.

🧐 Perguntas frequentes

Como funciona a codificação do filename*? O valor segue a forma charset'idioma'valor. Usa-se UTF-8 como charset, o idioma fica vazio e o nome é convertido em bytes UTF-8; cada byte não seguro vira %XX em hexadecimal. Assim um ó vira %C3%B3.

Preciso de filename e filename* os dois? Para máxima compatibilidade, sim. Clientes modernos leem filename* e ignoram filename; os antigos recorrem ao filename. Enviar os dois evita tratar cada navegador como caso especial.

O que coloco no campo ASCII? Um nome só com caracteres ASCII, por exemplo relatorio.pdf. Se você colar texto acentuado, a ferramenta avisa e o ideal é mover esse nome para o campo UTF-8.

Qual a diferença entre attachment e inline? attachment aciona a caixa Salvar como; inline pede ao navegador para exibir o conteúdo na página. Use inline para um PDF que queira mostrar na tela e attachment para forçar o download.

Tamanho e datas são obrigatórios? Não. Em branco, são omitidos do cabeçalho. O campo size aceita apenas um inteiro não negativo.

📚 Por que existem dois parâmetros de nome

A separação entre filename e filename* é uma questão de compatibilidade retroativa. A especificação original do Content-Disposition só permitia ASCII no token filename, sem forma portável de enviar Müller.pdf ou um nome acentuado. A RFC 5987 introduziu a forma charset'idioma'valor, e a RFC 6266 a integrou ao Content-Disposition como filename*.

O percent-encoding é o mesmo mecanismo das URLs: bytes que poderiam confundir o destinatário são trocados por %XX. A etiqueta de idioma entre as duas aspas simples quase sempre fica vazia, pois o nome de um arquivo não depende de uma língua falada. Escolher UTF-8 em vez de ISO-8859-1 também importa, porque algumas implementações só decodificam a forma UTF-8.