bueno yo hice una función facilita....
Código PHP:
<?php
/**
* (datos[, nombre[, tipo]])
*
* Obliga la descarga de los datos determinados por tipo, con
* el nombre especificado... o usando un nombre al azar.
*/
function download($data, $name = null, $mime = 'application/octet-stream')
{
if (headers_sent())
{ // Ni modo xS
return;
}
elseif (!$name)
{ // nada?
$name = 'archivo';
}
// ------------------- Cabeceras
header(sprintf('content-disposition: attachment; filename="%s"', $name));
header(sprintf('content-length: %d', strlen($data)));
header(sprintf('content-type: %s', $mime));
echo $data; // OK
exit;
}
?>
solo debes intentar esto....
Código PHP:
download(file_get_contents('archivo_a_descargar'), 'nombre_asignado', 'tipo/mime');
tan solo eso... ningun echo antes ni después... no mas