Foros del Web » Programando para Internet » PHP »

Descargar archivo desde php ?

Estas en el tema de Descargar archivo desde php ? en el foro de PHP en Foros del Web. He visto que en Algunas paginas que para descargar un archivo .exe o .zip Ponen La url asi Download.php?a=midownload.zip Se que tiene que ver algo ...
  #1 (permalink)  
Antiguo 26/05/2003, 21:27
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 5 meses
Puntos: 1
Descargar archivo desde php ?

He visto que en Algunas paginas que para descargar un archivo .exe o .zip Ponen La url asi

Download.php?a=midownload.zip


Se que tiene que ver algo con la funcion header() Pero no tengo ni la menor idea de como hacerle :(

Alguien tiene algun tutorial sobre esto ?? o me lo podria explicar :)

Gracias
__________________
Usuario Registrado de linux #374849
  #2 (permalink)  
Antiguo 26/05/2003, 21:41
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
http://www.forosdelweb.com/showthrea...hreadid=132817

mira ese post


Ademas en los faq aparece como se hace para que las direcciones sean como dices

http://www.forosdelweb.com/out.php?h...8%23post265278


salu2
  #3 (permalink)  
Antiguo 26/05/2003, 21:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa este mensaje:

http://www.forosdelweb.com/showthrea...hreadid=128346

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 26/05/2003, 22:44
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Esto generalmente se usa para hacer contadores y/o impedir que se usen gestores de descarga.

La forma mas común de hacerlo es:
Código PHP:
header("Location: ".$_GET["a"]);
// Porque se uso a=midownload.zip en la url 
La contra de esto es que si el cliente usa un gestor de descarga que monitorea las URLs de los navegadores (como Download Acelerator Plus), el archivo que baje va a ser inservible.
Para evitar esto debes hacer esto:
Código PHP:
$a $_GET["a"];
header("Last-Modified: " gmdate("D, d M Y H:i:s T"filemtime($a)));
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: ".mime_content_type($a));
header("Content-Disposition: attachment; filename=$a");
$fp fopen($a,'rb');
if ( !
$fp ) {
    echo 
"Error al abrir";
    exit();
}
if ( !
fpassthru($fp) ) {
    echo 
"Error al enviar";
    exit();
}
header("Connection: close");
exit(); 
Si no tenes la libreria Mimetype puedes borrar la linea que usa mime_content_type() o reemplazarla por header("Content-type: application/octet-stream");


Saludos!
  #5 (permalink)  
Antiguo 26/05/2003, 23:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
fran86

Tienes alguna lista de navegadores donde has probado esas cabeceras HTTP? .. Te lo comento por qué ya sabes que no todo navegador (y gestor de descargas) interpreta lo mismo para las cabeceras HTTP de descarga .. (sobre todo los navegadores de M$ donde cada versión se comporta de una manera ...)

Yo lo que hago es "indentificar" el navegador que usa el cliente par "tirarle" las cabeceras HTTP que "entienda" como que lo que le voy a enviar va para "descargar" ... Así lo aprendí de ver el código de phpMyAdmin xDDDDD.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 26/05/2003, 23:58
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Despues de poster mi respuesta vi tu link que me llevo a tu otro link...jejej de devshed.com y la verdad es que hasta ese momento no habia tenido en cuenta ese punto.

Debe ser porque ya no uso netscape por culpa de estos foros... y mi adiccion a PHP.

Mi pregunta es: existirá esa lista?

  #7 (permalink)  
Antiguo 27/05/2003, 00:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. esa "lista" no está en las RFC's del protocolo HTTP/1.1 (ahí dice lo que debería ser lo standar .. pero que lo siguan los demas navegadores es otra cosa ..)

Por ejemplo .. esto es un estracto del código de phpMyadmin

Cita:
// loic1: 'application/octet-stream' is the registered IANA type but
// MSIE and Opera seems to prefer 'application/octetstream'
Y alguna más que me he encontrado por ahí como 'download/application' o algo así (no recuerdo bien .. lo estoy poniendo de memoria ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 27/05/2003, 18:22
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 5 meses
Puntos: 1
muchas gracias :)
__________________
Usuario Registrado de linux #374849
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.