Ссылка на файл (например, PDF) в представлении CakePHP - PullRequest
7 голосов
/ 24 октября 2008

Я бы хотел сослаться на некоторые PDF-файлы в одном из представлений моего контроллера. Какова лучшая практика для достижения этой цели? Папка CakePHP webroot содержит подпапку ./files/, я сбит с толку, пытаясь ссылаться на нее, не используя «магические» пути в моем href (например, «/path/to/my/webroot/files/myfile.pdf»).

Какие у меня варианты?

РЕДАКТИРОВАТЬ: Я не адекватно описал свой вопрос. Я пытался ссылаться на файлы в / app / webroot / files / способом, не зависящим от платформы (т. Е. Нет mod_rewrite).

С тех пор я обошел эту проблему, храня такие файлы вне структуры каталогов CakePHP.

Ответы [ 8 ]

17 голосов
/ 27 октября 2008
$html->link('Pdf', '/files/myfile.pdf');
6 голосов
/ 03 ноября 2010

Это несколько тангенциально, но для доступа к такой локации в Моделях и других местах вы можете просто сделать это:

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

Эта тактика может быть полезна для доступа к файлам для статической загрузки данных, например, XML или JSON.

Это не рекомендуется для публичного использования или публичных ссылок.

4 голосов
/ 18 августа 2010

Я могу подтвердить, что это проблема, когда 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>
2 голосов
/ 28 августа 2010

Это должно работать

<?php echo $html->link('pdf', $this->webroot('files'.DS.'test.pdf'); ?>
1 голос
/ 17 декабря 2008

или ..

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

:)

1 голос
/ 26 октября 2008

Я не уверен, что правильно понял вопрос, но здесь идет речь. По сути, любой файл, который вы помещаете в папку webroot, будет доступен на веб-сервере, поэтому, если вы поместите файл в webroot / files / file.pdf, вы просто будете ссылаться на /files/file.pdf.

Если это не сработает, уточните свой вопрос ...

0 голосов
/ 19 сентября 2017
       <a href="<?php echo $this->request->webroot . 'carpetadentrodelwebroot/archivo.pdf'; ?>" target="pdf-frame" download="nombreParaDescarga">Descargar Archivo</a>
0 голосов
/ 11 ноября 2008

или ...

<a href="<?php echo $html->url('/files/somefile.pdf'); ?>">Link Text</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...