我想在我的某个控制器视图中链接到某些PDF。完成此任务的最佳做法是什么? CakePHP webroot文件夹包含一个./files/子文件夹,我试图链接到它而不使用“魔术”而感到困惑。我的href中的路径名(例如“/path/to/my/webroot/files/myfile.pdf")。

我有什么选择?

编辑:我没有充分描述我的问题。我试图以平台无关(即没有 mod_rewrite )的方式链接到/ app / webroot / files /中的文件。

我之前通过将这些文件存储在CakePHP目录结构之外来解决这个问题。

有帮助吗?

解决方案

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

其他提示

这有点相切,但是要在模型和其他地方访问这样的位置,您可以简单地执行此操作:

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

这种策略可能对访问静态数据加载文件的人有所帮助,例如XML或JSON。

不建议将其用于公共消费或公共链接。

我可以确认在没有使用mod_rewrite时这是一个问题。

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

输出

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

应该输出

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

这应该有效

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

我不确定我是否正确理解了这个问题,但是这里有。基本上,您在webroot文件夹中放置的任何文件都可以在Web服务器上访问,因此如果您将文件放在webroot / files / file.pdf中,您只需链接到/files/file.pdf。

如果这不起作用,请澄清你的问题......

或..

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

:)

...或

<a href="<?php echo $html->url('/files/somefile.pdf'); ?>">Link Text</a>
       <a href="<?php echo $this->request->webroot . 'carpetadentrodelwebroot/archivo.pdf'; ?>" target="pdf-frame" download="nombreParaDescarga">Descargar Archivo</a>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top