2010-01-21 21 views
28

Sé cómo cambiar el tipo MIME en un servidor web. Lo usé para asegurarme de que el navegador descarga mi archivo .scrpt en lugar de abrir la versión de texto sin formato. Hasta aquí todo bien, pero ¿es posible hacer lo mismo con un enlace? Me gustaría vincular a un archivo en GitHub pero se abrirá como un archivo de texto sin formato. ¿Puedo agregar un "atributo de tipo MIME" al enlace para indicarle al navegador que descargue el archivo?Agregar tipo mime al enlace HTML

Esto es lo que me gustaría ver:

<a mimetype="application/octet-stream" href="http://gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a> 
+2

El tipo MIME no determina si se visualiza o descarga un archivo. Es el navegador el que decide esto, según el tipo MIME y el encabezado Content-Disposition. – Thomas

+0

Tengo el mismo problema: el tipo MIME para los archivos que deseo servir no está configurado por mi empresa de alojamiento, y no hay forma de cambiar eso. ¿Realmente no hay manera de decirle al navegador en el enlace qué se va a descargar? – James

Respuesta

29

Hora de responder a mi propia pregunta. Esta es una pregunta muy antigua y probablemente no fue posible en ese momento, pero muchas cosas han cambiado desde entonces. La especificación HTML5 añade el atributo download:

<a href="hugepdf.pdf" download>Download file</a> 

Esto va a hacer exactamente lo que necesito, decirle al navegador para descargar el archivo en lugar de abrirlo. ¡Gracias a Jonathan Svärdén por resolver mi pregunta de hace años!

+1

[Eso es deprimente] (http://caniuse.com/#search=download) – JensG

+0

@Cimm ¿Puede decirnos cómo cambiar el tipo MIME en el servidor web – Muthu

+0

@muthu Eso depende del servidor web. Le sugiero que busque en Google " tipo MIME" y haga otra pregunta en SO si eso no resuelve su pregunta. Este no es realmente el lugar para hacer esta pregunta. – Cimm

13

Puede especificar una type attribute, pero el tipo de contenido enviado por el servidor es autorizada.

Este atributo proporciona una sugerencia de asesoramiento sobre el tipo de contenido del contenido disponible en la dirección de destino del enlace. Permite a los agentes de usuario optar por utilizar un mecanismo de respaldo en lugar de buscar el contenido si se les informa que obtendrán contenido en un tipo de contenido que no son compatibles.

Aparte de eso, no, no se puede.

+0

Intenté esto pero no funciona. Como explicaste ... Gracias por la explicación clara. – Cimm

0

HTML no se preocupa por los encabezados de respuesta HTTP. Esto es absolutamente un problema del lado del servidor, que debe resolverse en los encabezados de respuesta de HTTP antes de que se envíe el cuerpo de respuesta HTTP (¿/ content?). Sin un lenguaje de script como Ruby o PHP, no hay nada que puedas hacer.

1

¿Se puede configurar un script de intermediario que descargue el archivo en cuestión al servidor y luego lo cargue al usuario con un tipo MIME diferente?