lo que debes hacer es pasarle la ruta a una accion que contiene
cabeceras que fuerzan la descarga
echo $html->link($cor[0], array('controller' => 'archivos', 'action'
=> 'descargar', base64_encode($ar['Archivo']['archivo']) )).'<br />';
ese es el enlace, lo encripto en base64
function descargar($enlace) {
if(!$enlace) {
$this->Session->setFlash('No idenntificó
cuál archivo desea');
$this->redirect($this->referer());
} else {
$enlace = $enlace;
$cor = explode('/', $enlace);
$cor = array_reverse($cor);
/*
header ("Content-Disposition: attachment; filename=".
$cor[0]."\n\n");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
*/
$vBarras = array("/", "\\");
$sDocumento = base64_decode($enlace);
$archivo = explode('/', base64_decode($enlace));
$rev = array_reverse($archivo);
$nombre = $rev[0];
if (file_exists($sDocumento))
{
header("Content-type: application/force-download");
header("Content-Disposition: attachment;
filename=".basename($nombre));
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($sDocumento));
readfile($sDocumento);
}
}
}
con eso lo fuerzas
On 3 mar, 12:16, mayuli plaza gonzalez <[email protected]>
wrote:
> en un directorio del servidor tengo un pequeño archivo de excel en formato
> .xlt que el usuario debe descargar para vaciar los datos según la estructura
> de mi archivo.es decir, sólo bajarlo... pero en cake no me funciona bien el
> <a href= XXXXXXXX> template.xlt</a> ó no sé cómo hacerle.... estoy
> confundida...
>
> > Date: Thu, 3 Mar 2011 09:16:00 -0800
> > Subject: [CakePHP-es] Re: descargar archivo de un servidor
> > From: [email protected]> To: [email protected]
>
> > nececitas generarlo o que se descargue en vez de ue se abra?
>
> > On 3 mar, 06:05, mayuli plaza gonzalez <[email protected]>
> > wrote:
> > > Hola Buen día,Alguien sabe cómo descargar un archivo de excel .xls de un
> > > servidor de Xamp?
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> > Grupos de Google.> Para publicar una entrada en este grupo, envía un correo
> > electrónico a [email protected].> Para anular tu suscripción a
> > este grupo, envía un correo electrónico a
> > [email protected]
> > Para tener acceso a más opciones, visita el grupo
> > enhttp://groups.google.com/group/cakephp-es?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.