7

我想在我的一个控制器视图中链接到一些 PDF。实现这一目标的最佳做法是什么?CakePHP webroot 文件夹包含一个 ./files/ 子文件夹,我很困惑地试图链接到它而不在我的 href 中使用“神奇”路径名(例如“/path/to/my/webroot/files/myfile.pdf”)。

我有哪些选择?

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

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

4

8 回答 8

17
$html->link('Pdf', '/files/myfile.pdf');
于 2008-10-27T08:19:07.790 回答
6

这有点切题,但要访问模型和其他地方的这样一个位置,你可以简单地这样做:

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

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

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

于 2010-11-03T16:56:58.710 回答
4

我可以确认这是未使用 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>
于 2010-08-18T14:45:27.083 回答
2

这应该工作

<?php echo $html->link('pdf', $this->webroot('files'.DS.'test.pdf'); ?>
于 2010-08-28T18:10:08.447 回答
1

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

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

于 2008-10-26T14:05:56.843 回答
1

或者..

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

:)

于 2008-12-17T02:44:07.610 回答
0

或者...

<a href="<?php echo $html->url('/files/somefile.pdf'); ?>">Link Text</a>
于 2008-11-11T09:30:40.333 回答
0
       <a href="<?php echo $this->request->webroot . 'carpetadentrodelwebroot/archivo.pdf'; ?>" target="pdf-frame" download="nombreParaDescarga">Descargar Archivo</a>
于 2017-09-19T03:49:45.617 回答