Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/12/2007, 05:29
jefmetal
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: problema con descarga de ficheros y sesiones

Hola de nuevo.

Bien, despues de darle vueltas (hasta incluso eliminar casi todo el codigo), y de ver que nadie me responde (mi post es algo confuso), he optado por ver que cabeceras se envian.

Si llamo a la funcion Descargar:
Código:
function Descargar($ruta_comp) {
    ob_start();
    $fichero = basename($ruta_comp); 
    header("Content-Type: application/octet-stream\n");
    header("Content-Disposition: attachment; filename=\"$fichero\"\n");
    header("Content-Transfer-Encoding: binary\n");
    header("Content-Length: ". filesize($ruta_comp) . "\n");
    $bytes=readfile($ruta_comp);
    ob_end_flush();
}
pasandole como parametro la ruta completa de un fichero de texto, el fichero en cuestion se descarga ocupando 85 bytes, cuando el original tiene 83. De hecho inserta un código 13 y otro 10 (0D 0A en hex) al comienzo del mismo.

Si llamo a la url que me descarga el fichero desde otro script que me muestra las cabeceras obtengo:

Código:
Array ( [0] => HTTP/1.1 200 OK [1] => Date: Tue, 11 Dec 2007 11:25:19 GMT [2] => Server: Apache/2.2.6 (Win32) PHP/5.2.5 
[3] => X-Powered-By: PHP/5.2.5 [4] => Content-Disposition: attachment; filename="error.log" [5] => Content-Transfer-Encoding: binary [6] => Content-Length: 85 
[7] => Connection: close [8] => Content-Type: application/octet-stream )
Sin embargo si imprimo directamente la funcion filesize() del fichero original obtengo el valor correcto (83), mientras que en las cabeceras me aparece 85.

¿Alguien lo entiende o puede ver a que se deben estos 2 bytes??

Salu2