Question

J'aimerais créer un lien vers certains PDF dans l'une de mes vues de contrôleur. Quelle est la meilleure pratique pour y parvenir? Le dossier webroot de CakePHP contient un sous-dossier ./files/, je suis dérouté en essayant de créer un lien vers celui-ci sans utiliser "magique". chemins d'accès dans mon href (par exemple, "/path/to/my/webroot/files/myfile.pdf").

Quelles sont mes options?

MODIFIER: je n'ai pas bien décrit ma question. J'essayais de créer un lien vers des fichiers situés dans / app / webroot / files / de manière indépendante de la plate-forme (c'est-à-dire, pas de mod_rewrite ).

J'ai depuis résolu ce problème en stockant de tels fichiers en dehors de la structure de répertoires de CakePHP.

Était-ce utile?

La solution

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

Autres conseils

Ceci est quelque peu tangentiel, mais vous pouvez le faire simplement pour accéder à un tel emplacement dans Modèles et autres:

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

Cette tactique pourrait être utile à une personne accédant à des fichiers pour le chargement de données statiques, tels que XML ou JSON.

Cela n'est pas recommandé pour la consommation publique ou les liens publics.

Je peux confirmer qu'il s'agit d'un problème lorsque mod_rewrite n'est pas utilisé.

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

sorties

<a href="/pathtoapp/index.php/files/test.pdf">pdf</a>

il devrait sortir

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

Cela devrait fonctionner

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

Je ne suis pas sûr de bien comprendre la question, mais voilà. En gros, tout fichier que vous avez placé dans le dossier webroot sera accessible sur le serveur Web. Par conséquent, si vous le mettez dans webroot / files / file.pdf, vous lieriez simplement à /files/file.pdf.

Si cela ne fonctionne pas, veuillez clarifier votre question ...

ou ..

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

:

ou ...

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top