Foros del Web » Programando para Internet » PHP »

Ayuda forzando descargas

Estas en el tema de Ayuda forzando descargas en el foro de PHP en Foros del Web. Hola a todos! Bueno, ahora quisiera que me ayudaran a forzar las descargas. Tengo el siguiente script: Código PHP: <?php          $extensiones  = array( "zip" ,  ...
  #1 (permalink)  
Antiguo 22/09/2006, 16:30
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda forzando descargas

Hola a todos!

Bueno, ahora quisiera que me ayudaran a forzar las descargas. Tengo el siguiente script:

Código PHP:
<?php
    
    $extensiones 
= array("zip""rar");
    
$f $_GET["f"];

    
$ftmp explode(".",$f);
    
$fExt strtolower($ftmp[count($ftmp)-1]);

    if(!
in_array($fExt,$extensiones)){
        die(
"<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
    }

    
header("Content-type: application/octet-stream");
    
header("Content-Disposition: attachment; filename=\"$f\"\n");
    
$fp=fopen("$f""r");
    
fpassthru($fp);
    
?>
Seguramente ya se abran habran dado cuenta de donde sake el script. xD

Bien, como pueden ver, el script revisa que los archivos a descargar tengan alguna de las extensiones del array. Bueno, no hay problema con nada, el archivo baja bien y todo, pero como se dan cuenta viendo el script, los archivos a descargar tienen que estar en el mismo directorio que el script.

La pregunta seria... ¿como puedo definir un directorio donde esten mis archivos?

Por ejemplo que quede asi:

download.php <-- raíz
/archivos <-- Aqui estan los archivos

Lo he intentado y al hacer la peticion get, muestra el archivo y nombre y pregunta donde guardar, pero al descargar el archivo, baja corrupto. Dice que el archivo esta dañado.

Saludos.
  #2 (permalink)  
Antiguo 22/09/2006, 17:13
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.483
Antigüedad: 17 años, 6 meses
Puntos: 2111
Haz intentado subir un nivel, con ../? Yo supongo que así se podría.
  #3 (permalink)  
Antiguo 22/09/2006, 18:05
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 14 años, 11 meses
Puntos: 0
De hecho no hay problema con como deben ir los paths, sino como definirlos en el script. En si el script que puse es el original, yo lo modifique asi, pero me descarga el archivo corrupto. Osea, baja ej archivo, pero esta dañado, tiene cero bytes.

Así es como lo modifique, pero da ese problema:

Código PHP:
    $extensiones = array("zip""rar"); 
    
$g $_GET["f"]; // El nombre del archivo
    
$f 'archivos/' $g//El path + el nombre del archivo

    
$ftmp explode(".",$f);
    
$fExt strtolower($ftmp[count($ftmp)-1]);

    if(!
in_array($fExt,$extensiones)){
        die(
"<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt");
    }

    
header("Content-type: application/octet-stream");
    
header("Content-Disposition: attachment; filename=\"$g\"\n");
    
$fp=fopen("$f""r");
    
fpassthru($fp); 
No se que es lo que anda mal.

Saludos.
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 22:24.