Verknüpfen mit einer Datei (zum Beispiel PDF) innerhalb einer CakePHP Ansicht

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

  •  04-07-2019
  •  | 
  •  

Frage

Ich möchte einige PDFs in einem meiner Controller Ansichten verknüpfen. Was ist die beste Praxis um dies zu erreichen? Die CakePHP webroot Ordner einen ./files/ Unterordner enthält, bin ich verwirrt, indem Sie versuchen, um es zu verbinden, ohne „Magie“ Pfadnamen in meinem href (zB „/path/to/my/webroot/files/myfile.pdf“) verwendet wird.

Was sind meine Optionen?

EDIT: Ich habe nicht angemessen auf meine Frage beschreiben. Ich war versucht, auf Dateien in / app / webroot / files / in einer plattformunabhängig (dh. Nicht mod_rewrite) Art und Weise zu verbinden.

Ich habe durch das Speichern solcher Dateien außerhalb der CakePHP Verzeichnisstruktur, um dieses Problems seit gearbeitet.

War es hilfreich?

Lösung

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

Andere Tipps

Dies ist etwas tangential, aber für den Zugang zu einer solchen Stelle in Models und anderen Orten können Sie dies einfach tun:

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

könnte diese Taktik jemand Zugriff auf Dateien für die statischen Laden von Daten, wie XML oder JSON hilfreich sein.

Dies ist nicht für die Öffentlichkeit oder die öffentliche Anbindung empfohlen.

kann ich 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="/pathtoapp/index.php/files/test.pdf">pdf</a>

es ausgeben soll

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

Das sollte funktionieren

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

Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe, aber hier geht. Grundsätzlich kann jede Datei, die Sie im Webroot-Ordner abgelegt werden auf dem Webserver zugänglich sein, so dass, wenn Sie die Datei in Webroot setzen / files / file.pdf Sie würden einfach zu /files/file.pdf verbinden.

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

oder ..

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

:)

oder ...

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top