search

Found

info Descripción

Genera una cabecera Content-Disposition según RFC 6266/5987. Empareja el filename ASCII con un filename* UTF-8 y avisa de caracteres no ASCII o comillas.

📘 Cómo usar

  1. Elige attachment para forzar la descarga o inline para que el navegador lo muestre
  2. Escribe un nombre ASCII y, si hace falta, un nombre UTF-8
  3. Añade tamaño y fechas opcionales y revisa la cabecera generada

Constructor de Cabecera HTTP Content-Disposition

attachment fuerza la descarga; inline permite que el navegador lo muestre

Respaldo ASCII. Los clientes antiguos lo requieren

Salida en UTF-8 percent-encoded según RFC 5987

Cabecera generada

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

Constructor de Cabecera HTTP Content-Disposition | filename y filename* a la vez

Compón una cabecera Content-Disposition conforme a RFC 6266 y RFC 5987. La herramienta empareja el filename ASCII con el filename* de RFC 5987 en una sola salida y avisa de los caracteres no ASCII o comillas que los generadores rápidos suelen ignorar. Pensada para desarrolladores backend que escriben endpoints de descarga.

💡 Sobre esta herramienta

Si pones un nombre con tildes o caracteres no latinos directamente en filename="informe.pdf", algunos clientes muestran texto ilegible en el diálogo de guardado. El parámetro filename solo admite ASCII, así que la solución es enviar también filename* con UTF-8 codificado en porcentajes según RFC 5987.

Esta herramienta escribe ambos a la vez. Tú introduces el nombre ASCII de respaldo y el nombre UTF-8, y ella genera algo como filename="informe.pdf"; filename*=UTF-8''informe%CC%81.pdf sin que codifiques byte a byte. También admite los parámetros opcionales size, creation-date y modification-date, y da formato a las fechas como HTTP-date (IMF-fixdate) para que la cabecera sea válida.

🧐 Preguntas frecuentes

¿Cómo funciona la codificación de filename*? El valor sigue la forma charset'idioma'valor. Se usa UTF-8 como charset, el idioma se deja vacío y el nombre se convierte a bytes UTF-8; cada byte que no sea seguro se escribe como %XX en hexadecimal. Así viaja cualquier carácter sin ambigüedad.

¿Necesito filename y filename* los dos? Para máxima compatibilidad, sí. Los clientes modernos leen filename* e ignoran filename; los antiguos recurren a filename. Enviar ambos evita tratar de forma especial a cada navegador.

¿Qué pongo en el campo ASCII? Un nombre solo con caracteres ASCII, por ejemplo informe.pdf. Si pegas texto con tildes, la herramienta te avisa y conviene mover ese nombre al campo UTF-8.

¿Cuál es la diferencia entre attachment e inline? attachment provoca el diálogo Guardar como; inline pide al navegador que muestre el contenido en la página. Usa inline para un PDF que quieras ver en pantalla y attachment para forzar la descarga.

¿Son obligatorios el tamaño y las fechas? No. Si los dejas vacíos, se omiten en la cabecera. size solo acepta un entero no negativo.

📚 Por qué existen dos parámetros de nombre

La separación entre filename y filename* nace de la compatibilidad. La especificación original de Content-Disposition solo permitía ASCII en el token filename, así que no había forma portable de enviar Müller.pdf ni un nombre en japonés. RFC 5987 introdujo la forma charset'idioma'valor y RFC 6266 la incorporó a Content-Disposition como filename*.

El percent-encoding es el mismo concepto que ya conoces de las URL: los bytes que podrían confundir al receptor se sustituyen por %XX. Entender esta capa ayuda a depurar descargas: si ves %C3%A9 en una cabecera, son los dos bytes UTF-8 de la é. Mantener la etiqueta de idioma vacía es lo habitual, porque el nombre de un archivo no depende de un idioma hablado.