Foros del Web » Programando para Internet » PHP »

Ocultar la dire de un archivo al hacer la descarga: mirar el código. anda a veces :(

Estas en el tema de Ocultar la dire de un archivo al hacer la descarga: mirar el código. anda a veces :( en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/08/2003, 23:20
 
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
  #2 (permalink)  
Antiguo 13/08/2003, 17:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema parece que lo tienes con esas cabeceras HTTP que estás usando .. No todo navegador se comporta igual (y entiende) que tipo de cabeceras usar para decirle que lo que le envias es un archivo para descargar (un 'attach' ..).

Te recomendaría que probases otro script para descargas que tenga en cuenta el navegador (por ejemplo phpMyadmin lo hace en parte de su código ...)

Puedes ver algunos ejemplos en:
http://www.hotscripts.com/PHP/Script...ems/index.html


Y .. por tu seguridad .. sube los archivos que tengas a disposición para descargar -FUERA- de tu documen_root (en tu caso del ejemplo parece que es el public_html .. quedando tus archivos en algún directorio que crres bajo tu misistio.com.ar/ según la estructura de directorios de tu direcctorio virtual asignado ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 13/08/2003, 19:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 12
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias, Cluster por tu respuesta.
Estuve mirando el enlace que dejaste en el foro y está muy bueno. Pero en general están utilizando esa cabecera con el atache. el problema con myadmind es que no utiliza cabeceras para descargas....
¿Sabés cómo puedo encontrar las cabeceras que admite cada navegador?
muchas tenkius y abrazos
Gra
  #4 (permalink)  
Antiguo 16/08/2003, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
?¿ ... phpMyadmin usa esas cabeceras HTTP para indicar al navegador en cuestión (pues lo identifica y en consecuencia le "tira" las cabeceras adecuadas).

Viste ya su codigo (el de phpmyadmin .. lo puedes bajar de www.phpmyadmin.net) ... O que problema tienes?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 16/11/2003, 16:20
Avatar de futilidad  
Fecha de Ingreso: julio-2002
Mensajes: 388
Antigüedad: 21 años, 9 meses
Puntos: 0
Como hago para acceder a un archivo arriba de la carpeta en la que estoy, si la carpeta en la que esta mi archivo se encuentra en mi mismo nivel hago

./carpeta/archivo.mp3

pero como le hago si esta arriba?
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:08.