Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2014, 06:39
DandyCC
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 meses
Puntos: 1
Problema con links para descargar archivos del servidor

Buenas. Hace unos días pregunté esto:

http://www.forosdelweb.com/f18/creac...vidor-1086971/

Y todo funcionaba bien, comprobé que los archivos se descargaban pero no los abrí. Abrí un pdf ayer por casualidad y da error "debido a que no es un tipo de archivo admitido o está dañado".

He comprobado que el archivo se sube correctamente al servidor, se abre correctamente. Pero descargarlo como expongo a continuación, no.

Explico lo que hice a ver si alguien me puede decir donde está el error. Cuando genero el link de descarga, encripto la ruta completa (directorio+nombre de archivo) dos veces, la primera con una función propia (encriptar) y la segunda, sobre esa encriptación, con base64.

Código PHP:
Ver original
  1. $ruta_completa_cript = encriptar ($ruta_completa);
  2. $ruta_completa_64 = base64_encode($ruta_completa_cript);

Muestro el link:

Código HTML:
Ver original
  1. <a class="archivo" href="descargas.php?id=<?php echo $ruta_completa_64; ?>"><?php echo $nombre_archivo; ?></a>

Y descargas.php es esto:

Código PHP:
Ver original
  1. require_once 'funciones.php';
  2.  
  3. $ruta_decodif = base64_decode($_GET['id']);
  4. $ruta_decodif_decript = desEncriptar($ruta_decodif);
  5.  
  6. header("Content-type: application/octet-stream");
  7. header("Content-Disposition: attachment; filename=\"$ruta_decodif_decript\"\n");
  8.    
  9. $fp=fopen($ruta_decodif_decript, "r");
  10. fpassthru($fp);

He comprobado que la versión original de la ruta ($ruta_completa) y la desencriptada en descargas.php son idénticas ($ruta_decodif_decript), por lo que no sé qué está fallando.