Foros del Web » Programando para Internet » PHP »

Dudas para descargar archivos.

Estas en el tema de Dudas para descargar archivos. en el foro de PHP en Foros del Web. hola, tengo una duda sobre esto: Estoy creando una seccion de descarga de archivos,y tengo dos opciones: 1) Descarga libre para todos los usuarios: q ...
  #1 (permalink)  
Antiguo 28/02/2008, 11:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 296
Antigüedad: 16 años, 1 mes
Puntos: 2
Dudas para descargar archivos.

hola,
tengo una duda sobre esto:
Estoy creando una seccion de descarga de archivos,y tengo dos opciones:
1) Descarga libre para todos los usuarios:

q el usuarios,registrado o invitado pueda descargar el archivo. tengo en una enlace q lleva al archivo1.php , en cual al seguirlo el archivo1.php tiene cabezeras de descarga,porq lo q se abre automaticamente la descarga. Aki todo funciona bien.
Pero,si todos pueden descargar este archivo,tambien los robots q indexan nuestras paginas pueden seguir estos enlaces,por lo q me pregunto como blokear estos enlaces de descarga para los bots.
Con el robots.txt y con el nofollow? q otra opcion hay ??

2) Descarga para usuarios registrados (los invitados ven el anchortext pero sin enlace,solo el texto)
Creo q esta es la mejor forma para el sistema,no?
Usar la misma metodologia,solo q el usuario se debe de loguear o registrar para poder descargar.
ahora, un usuario registrado puede postear el enlace de descarga al archivo en foros y por email,aki los no-registrados con tan solo pegar el URL en el browser pueden descargar , Y SIN ESTAR REGISTRADO.
Como puedo evitar eso,en este caso.


Gracias de antemano.
  #2 (permalink)  
Antiguo 28/02/2008, 11:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: forzar la descarga de un archivo

Para la 1, la única opción es usar el robots.txt, para eso existe.

Para tu opción 2, si ves el código puedes comprobar si esta logueado:
Código PHP:

if( !logged_in() ) {
        die( 
"Debes de iniciar sesión" );
}

$ruta $_GET['ruta'];
$archivo_arr explode"/"$ruta );
$archivo $archivo_arr[count($archivo_arr) - 1];

if( !
file_exists$ruta ) ) {
         die( 
"No existe $ruta" );
}

header"Content-Disposition: attachment; filename=".$archivo."");
header"Content-type: application/octet-stream" ); 

@
readfile$ruta ); 
La función logged_in tu la debes de implementar y debe de comprobar si existe una sesión valida para proceder a descargar el archivo.

Saludos.

Traslado tu duda a un nuevo tema.
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 06:20.