Hola,
La verdad he buscado mucho este tema en la internet y no he encontrado nada, primero les cuento porque necesito esto: la intencion es ocultar los archivos de mi servidor sin mostrar la direccion de descarga, esto con el fin de protegerlos, aun no he encontrado una forma mejor.
Esta es mi funcion de XAJAX
function descargar_documento($archivo, $aleatorio)
{
$respuesta = new xajaxResponse('ISO-8859-1');
define ( 'dir' , 'Archivos' );
if( $_COOKIE [ 'descarga' ] == $aleatorio )
{
// Si existe la cookie con el valor de $aleatorio verifica el archivo
if( file_exists ( dir . '/' . $archivo ))
{
//Esto es lo que me gustaria que existiera
//$respuesta->addHeader ( 'Content-Type: application/octet-stream' );
//$respuesta->addHeader ( 'Content-Disposition: attachment; filename=' . $archivo );
//De esta forma me muestra el archivo pero en el explorador.
$salida .= file_get_contents ( dir . '/' . $archivo );
//Asi lo realizo pero igual me lo muestra en la barra de estado
$respuesta->addRedirect("Archivos/$archivo");
}
else
{
$salida.= 'ERROR: No se ha encontrado el archivo solicitado: '. dir . '/' . $archivo ;
$respuesta->addAssign("central","innerHTML",$salida);
}
}
else
{
$salida .= '<h1>ERROR</h1><br />No puedes acceder a este archivo desde un servidor externo' ;
$respuesta->addAssign("central","innerHTML",$salida);
}
return $respuesta;
}
$xajax->registerFunction("descargar_documento");