Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2003, 23:20
clamaga
 
Fecha de Ingreso: agosto-2003
Mensajes: 12
Antigüedad: 20 años, 8 meses
Puntos: 0
Ocultar la dire de un archivo al hacer la descarga: mirar el código. anda a veces :(

Hola amigos:

Necesitaba un script que me permitiera ocultar la dirección de una descarga en el navegador. Explorer suele ser más discreto, pero Netscape revela siempre el directorio y el nombre del archivo .zip que estamos descargando.
Encontré aquí un script muy bueno, al que le hice un pequeñito agregado, para que le asigne un mobre falso al archivo cuando lo descargamos, de ese modo el cliente no conoce nunca el verdadero nombre que el file tiene en el directorio.

Peeeeeero: tengo un gravísimo PROBLEMA
Para algunos usuarios funciona bien. Pero otros, en cambio NO PUEDEN DESCARGAR EL ARCHIVO. O LES DA ERROR, O DESCARGAN un archivo llamado "modules.php" que no tiene nada que ver con el nombre que le estamos asignando en el script. Lo malo es que ese archivo "modules.php" se descarga roto o vacío.

No sé cuál puede ser el error: si es un problema de cabeceras y versión del navegador ( a mi me está funcionando sólo con la 6), o si tengo algún error en la sintaxis, o si me falta una cabecera, etc.

Agradecería muchíiiiiisimo si me pueden ayudar con esto.

(Descarga un libro de Agata Christie que en realidad está en esta dirección: http://usuarios.lycos.es/clamaga/aaalibros/1984.zip)



<?
function descargar($file){

//donde $file es igual a "archivo.zip"

global $file;
$directorio="elnombrequesea";

//Esto genera un nombre aleatorio para el archivo a bajar en cada descarga
$ZipName = rand(1005,999999);

//Acá le añadimos la extensión correspondiente .zip
$nombrefalso = "$ZipName.zip";

$download=$file;
$sitio= "/www/papeles/misitio.com.ar/public_html/$directorio/";

$direccion=$sitio . $download;

Header ( "Content-Type: application/octet-stream");
// La cabecera que sigue también puede funcionar, sin embargo utilicé la anterior
//Header ( "Content-Type: application/force-download");
Header ( "Content-Length: ".filesize($direccion));
Header( "Content-Disposition: attachment; filename=\"$nombrefalso\"");
readfile($direccion);
}
descargar($file);
?>

Saludos a todos:
Graciela

Última edición por clamaga; 12/08/2003 a las 01:10