tutorial start instalacion examples ejemplos cake cakephp

start - Vinculación a un archivo(por ejemplo, PDF) dentro de una vista de CakePHP



cakephp start (8)

o...

<a href="<?php echo $html->url(''/files/somefile.pdf''); ?>">Link Text</a>

Me gustaría vincular algunos archivos PDF en una de las vistas de mi controlador. ¿Cuál es la mejor práctica para lograr esto? La carpeta webroot de CakePHP contiene una subcarpeta ./files/, estoy confundido al tratar de vincularlo sin utilizar nombres de ruta "mágicos" en mi href (por ejemplo, "/ruta/to/my/webroot/files/myfile.pdf").

¿Cuáles son mis opciones?

EDITAR: No describí adecuadamente mi pregunta. Estaba intentando vincular los archivos en / app / webroot / files / de una manera independiente de la plataforma (es decir, sin mod_rewrite ).

Desde entonces, he solucionado este problema almacenando dichos archivos fuera de la estructura de directorios de CakePHP.


No estoy seguro de entender la pregunta correctamente, pero aquí va. Básicamente, cualquier archivo que coloque en la carpeta webroot estará accesible en el servidor web, por lo que si coloca el archivo en webroot / files / file.pdf, simplemente lo vinculará a /files/file.pdf.

Si eso no funciona, aclare su pregunta ...


$html->link(''Pdf'', ''/files/myfile.pdf'');


o..

<a href="<?php echo $this->webroot; ?>files/somefile.pdf">Link Text</a>

:)


Puedo confirmar que esto es un problema cuando mod_rewrite no se está utilizando.

<?php echo $html->link(''pdf'', ''/files/test.pdf''); ?>

salidas

<a href="/pathtoapp/index.php/files/test.pdf">pdf</a>

debería salir

<a href="/pathtoapp/app/webroot/files/test.pdf">pdf</a>


Esto debería funcionar

<?php echo $html->link(''pdf'', $this->webroot(''files''.DS.''test.pdf''); ?>


Esto es algo tangencial, pero para acceder a dicha ubicación en Modelos y otros lugares simplemente puede hacer esto:

$file = WWW_ROOT . DS . ''files'' . DS;

Esta táctica puede ser útil para alguien que accede a archivos para cargar datos estáticos, como XML o JSON.

Esto no se recomienda para consumo público o enlaces públicos.


<a href="<?php echo $this->request->webroot . ''carpetadentrodelwebroot/archivo.pdf''; ?>" target="pdf-frame" download="nombreParaDescarga">Descargar Archivo</a>