Ссылка на файл (например.PDF) в представлении CakePHP.

StackOverflow https://stackoverflow.com/questions/233643

  •  04-07-2019
  •  | 
  •  

Вопрос

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

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

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

С тех пор я решил эту проблему, сохраняя такие файлы вне структуры каталогов 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, будет доступен на веб-сервере, поэтому, если вы поместите файл в 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