Evitar que se abran en el navegador los enlaces a archivos de descarga

Y si lo que quiero es que cuando pinche en el enlace me de la opcion de descargar sea el archivo que sea? Con los archivos zip o exe funciona asi pero...

La FAQ Evitar que se abran en el navegador los enlaces a archivos de descarga tiene

Pertenece a la categoría:

Pregunta
Y si lo que quiero es que cuando pinche en el enlace me de la opcion de descargar sea el archivo que sea? Con los archivos zip o exe funciona asi pero con los doc, pdf, y demas no consigo encontrar la manera de hacerlo. Sabeis alguna solucion directa?


Respuesta de Miguel Angel Alvarez
Tu pregunta es bastante típica y yo todavía no he encontrado nadie que de una solución que satisfaga a todos... Cuando un navegador detecta que el tipo de archivo lo puede abrir en su propia ventana, lo hace. Eso pasa con los .doc o .pdf, tal como indicas, pero también con los .txt o los .xls (de Excel) y, por supuesto con los .html o .htm, que son páginas web y por tanto las muestra en lugar de proponer su descarga.


La solución que ofrezco yo es comprimir esos archivos en un .zip y así siempre se descargarán, pero se que, para determinados visitantes sin mucha experiencia, puede ser un engorro ofercerles los archivos comprimidos.


Otra idea es cambiar la extensión al archivo y avisar al usuario que debe cambiarla en sus ordenadores antes de poder ejecutarlos. También muy engorroso, pienso que no es muy interesante.


Si alguien tiene otra idea, la estamos esperando... gracias.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 10 comentarios a la faq
1 comentario no revisado
9 comentarios revisados:
Por: Luar
29/8/03
Por medio de codigo asp se podia hacer creo recordar, tendria que buscar exactamente como se hacia si os interesa, pero vamos sí que funcionaba
Por: Cicada
23/9/03
creo ke lo mejor es indicarle al usuario de hacer click derecho en el link y elegir "Guardar destino como..."
Por: Andtt
10/12/03
lo del archivo zip esta muy bien, pero mi problema es ese cada vez que me descargo un ZIP, no me da opcion a guardarlo si no que directamente se me abre en el descompresor que tengo esn este caso "WINRAR" sera esta la causa del problema..?
Por: Javier
01/3/04
El Problema es el Winrar, tienes que hacer lo siguiente:
1. Desinstalas el winrar, pruebas bajar algun archivo zip, y vas a ver que te pide donde lo queres guardar.-

2.- vuelves a instalar el winrar en otra carpeta diferente a la que estaba instalado, por ejemplo c:programas y problema solucionado.-
Por: Gino Cumpa
23/4/04
Hey mano, yo tuve ese mismo problema pero estaba trabajando con Windows XP en mi propia PC, siempre se me habría el winzip, pero cuando lo cambié a otra PC con Windows 98, se solucionó el problema...

http://espanol.geocities.com/g_cumpa/
Por: Carlos Ochoa
07/1/05
Yo conozco la respuesta pero esta manera de hacerlo sirve unicamente para php, no se si asp o directamente html tienen tambien solucion

el codigo se los dejo aca., no se les olvide colocarlo al principio de la pagina php. :)

header("Content-type: application/x-file");
header("Content-Disposition: attachment; filename=[nombre completo del archivo]");
readfile("ruta y nombre del archivo");

asi sea un .zip .doc .txt .html aparece el cuadro de dialogo de descarga de archivo
Por: spidemanpc
20/4/06
Puedes obligar al navegador a abrir la ventana de descarga con las siguientes instrucciones. (Estan en java pero creo que son parecidas en otros lenguajes) del objeto response

response.setContentType("application/octet-stream"); ////application/x-www-form-urlencoded
//response.setContentType("image/max");

response.addHeader("contentdisposition","attachment; filename=" + nombrearchivo);
Por: Jako
12/5/06
Yo lo Configure y Jalño de pocas pulgas y con una orden Simple puedes realizar varias pruebas, auqi el codigo completo:


<?

if ( $doc == "declaracion")
{
header("Content-type: application/x-file");
header("Content-Disposition: attachment; filename=prueba.txt");
readfile("C:servidorwwwproyectosprueba.txt");
}
else
{
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Pagina Principal de Experimentos</title>
</head>
<body>
Prueba de Respuesta de descarga- BETA<br><br>
<a href="?doc=declaracion">Descargar</a>
</body>
</html>

<? } ?>

Espero te Sirva Solo Defines la Dirección del Archivo, dentor una web es mas simple solo el complemento del archivo si esta dentro y el nombre es el nombre con el que se guarda recuerda poner el nombre tal icual como se graba ademas de la extención
Por: Xavi Gil
05/10/06
Yo acostumbro a añadir una extensión "falsa", algo del tipo "download", "descarga" o "quita_esto"... según el "tipo" de usuario....

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo