문제

컨트롤러보기 중 하나에서 PDF에 연결하고 싶습니다. 이것을 달성하기위한 모범 사례는 무엇입니까? Cakephp Webroot 폴더에는 ./files/ subfolder가 포함되어 있습니다. href (예 : "/spath/to/my/webroot/files/myfile.pdf"에서 "Magic"PathNames를 사용하지 않고 링크하려고합니다.

내 옵션은 무엇입니까?

편집하다: 나는 내 질문을 적절하게 설명하지 않았다. 나는/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 폴더에 넣은 모든 파일은 WebServer에서 액세스 할 수 있으므로 파일을 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