Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/07/2013, 13:55
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Restringir descarga de archivos

Pues no, lo que se hace en ese caso es realizar la entrega del archivo manualmente, te dejaré un ejemplo...

Código PHP:
Ver original
  1. <?php
  2.  
  3. //entregas el nombre del archivo o un identificador del mismo para saber que archivo entregar!
  4. $archivo = $_GET['archivo'];
  5.  
  6. /*
  7. si es un identificador deberás guardar el identificador en una DB o en un archivo
  8. donde especifique a que archivo apunta el identificador, por ejemplo:
  9. ID = 1jh2b3kr3b6jk6b7k6
  10. aarchivo = miarchivo.pdf
  11. */
  12.  
  13. //guardas el nombre del archivo en una variable para su uso
  14. $archivo = 'miarchivo.pdf';
  15.  
  16. //envias las cabeceras correspondientes!
  17. header ("Content-Disposition: attachment; filename=".$archivo" ");
  18. header ("Content-Type: application/octet-stream");
  19. header ("Content-Length: ".filesize($archivo));
  20. filereader($archivo);

Obviamente es código incompleto, porque falta que implementes un sistema (una tabla en la DB por ejemplo) donde generes el ID del archivo y el nombre del archivo en si, ya que no te recomiendo en absoluto que pases nombres de archivo por GET o POST, ya que si no implementas medidas de seguridad puede ser un tremendo agujero de seguridad, ya que podrían usarlo para descargar tus archivos de PHP o cualquier otro archivo alojado en el servidor, así si el identificador no existe en la DB no podrán descargar nada que no este preparado para ello....

Por cierto, este archivo lo debes proteger validando que exista una sesión activa para permitir que solo los usuarios que han iniciado sesión puedan descargar los archivos y no tengan acceso a la URL del archivo real...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)