obligar a guardar archivos

usuusu
20 de Octubre del 2005
hola otra vez!!
me gustaría saber como puedo obligar a descargar los ficheros en vez de abrirlos, esque cuando abro archivos .txt no hay ningún problema pero con los pdf todo son problemas, alguien tiene idea?

XALS
20 de Octubre del 2005
Yo estoy buscando la misma funcion. Se que existen al menos dos manera de hacerlo con javascript, pero las ví una vez de pasada y ahora no me acuerdo. Si lo encuentras avisa!

FlassRex
20 de Octubre del 2005
Bueno pues a ustedes les tengo algo que les puede funcionar. Es simple, utilizando php obligamos al navegador a que despliegue la ventana de guardar destino. pueden utilizar el siguiente codigo:

descargarLink.php
================================
<?
print "Por favor Click " ;
print "<a href="./downloadAction.php?fileName=download.pdf">";
print "Aqui";
print "</a>";
print "para iniciar la descarga. ";
?>
================================
Esta pagina llamará "descargaraccion.php" dando clic en el texto "Aqui".

descargaraccion.php
====================
<?
$filename = $_GET['fileName'];
$path="C:/descargas/";

/*print "Archivo ".$filename;
print "Direccion ".$path;*/

header('Pragma: private');
header('Cache-control: private, must-revalidate');
header("Content-type: text/x-ms-iqy");

$fp = fopen($path.$filename,"r");
$filedata=fread($fp,filesize($path.$filename));
fclose($fp);

header("Content-type: text/x-ms-iqy");
header("Content-Disposition: attachment; filename=".$filename);
print $filedata;
?>
================================

Espero que les funcione el anterior, sino les recomiendo este mas corto:

descargar.php
===============================
<?php
// Enviaremos un PDF
header('Content-type: application/pdf');

// Se va a llamar descarga.pdf
header('Content-Disposition: attachment; filename="descarga.pdf"');

// La fuente del PDF se encuentra en original.pdf
readfile('original.pdf');
?>
=====================
Si no los satisface, pueden adecuar el que sigue segun lo que necesiten para javascript:

====================
<button type=button onclick="dwindow.location.href=''">Descargar archivo adjunto</button>

=================
pueden manejar las ordenes al navegador con onclick y la funcion header() para que le indique directamente que obligue a guardar destino y no habrir.

Espero que les halla servido de algo.

tgp
20 de Octubre del 2005
enzipalos :)

NuTrAj
20 de Octubre del 2005
Mira no se si exista una funcion que haga lo que quieres hacer, pero si en tu computadora cliente que esta accediendo a la web tienes instalado el Acrobat Reader, el programa se va a abrir con el siempre, cuando pones un archivo con una extension que no puede abrir el IE, entonces te da la opcion de guardar el archivo en hd (por ejm el .zip).
No se si exista algun codigo que haga lo que quieres.
Saludos, Raul

WebMasterFrank
20 de Octubre del 2005
la mejor solucion es la queapunto TGp puesto que hay librerias en php àra el tema del zipeo , estas librerias y sus funciones , te permitiran , descargar y convertir lo descargado en archivo zip , gracias a lo cual se descargara el archivo zip y dentro el pdf y no se ejecutara en el cliente o usuario , es la mejor forma , otra seria que el archivo no se descargue sino que se envie directamente al usuario , con lo cual te quitas tambien de engorros , chequea esa cosas y si tienes mas dudas pregunta para eso estamos , saludos y buena suerte , te paso unos links a ver si te sirven de ayuda sobre esto , http://www.phpbuilder.com/manual2/manual/es/ref.zlib.php