8 Stimmen

Verlinkung zu einer Datei (z.B. PDF) innerhalb einer CakePHP-Ansicht

Ich möchte in einer meiner Controller-Ansichten auf einige PDFs verweisen. Was ist die beste Vorgehensweise, um dies zu erreichen? Der CakePHP Webroot-Ordner enthält einen ./files/ Unterordner, ich bin verwirrt durch den Versuch, es zu verknüpfen, ohne "magische" Pfadnamen in meinem href (z.B. "/path/to/my/webroot/files/myfile.pdf") zu verwenden.

Welche Möglichkeiten habe ich?

EDITAR: Ich habe meine Frage nicht hinreichend beschrieben. Ich habe versucht, einen Link zu Dateien in /app/webroot/files/ in einer plattformunabhängigen (d.h. keine mod_rewrite ) Weise.

Ich habe dieses Problem inzwischen umgangen, indem ich solche Dateien außerhalb der CakePHP-Verzeichnisstruktur gespeichert habe.

17voto

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

6voto

zmonteca Punkte 2274

Das ist zwar etwas tangential, aber für den Zugang zu einem solchen Ort in Models und anderen Orten können Sie dies einfach tun:

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

Diese Taktik könnte für jemanden hilfreich sein, der auf Dateien zum Laden statischer Daten, wie XML oder JSON, zugreift.

Dies wird nicht zum öffentlichen Verzehr oder zur öffentlichen Verlinkung empfohlen.

4voto

James Revillini Punkte 132

Ich kann bestätigen, dass dies ein Problem ist, wenn mod_rewrite nicht verwendet wird.

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

Ausgänge

<a href="http://stackoverflow.com/pathtoapp/index.php/files/test.pdf">pdf</a>

sollte er Folgendes ausgeben

<a href="http://stackoverflow.com/pathtoapp/app/webroot/files/test.pdf">pdf</a>

2voto

sotomsa Punkte 29

Dies sollte funktionieren

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

1voto

Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe, aber ich versuche es. Grundsätzlich wird jede Datei, die Sie in den webroot-Ordner legen, auf dem Webserver zugänglich sein. Wenn Sie also die Datei in webroot/files/file.pdf ablegen, würden Sie einfach auf /files/file.pdf verlinken.

Wenn das nicht funktioniert, klären Sie bitte Ihre Frage...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X