Vinculação a um arquivo (por exemplo, PDF) dentro de uma visão CakePHP
-
04-07-2019 - |
Pergunta
Eu gostaria de link para alguns PDFs em um dos meus pontos de vista do controlador. Qual é a melhor prática para realizar isso? A pasta webroot CakePHP contém uma subpasta ./files/, estou confuso, tentando link para ele sem usar caminhos "mágicas" em meu href (por exemplo, "/path/to/my/webroot/files/myfile.pdf").
Quais são as minhas opções?
EDIT: eu não descrever adequadamente a minha pergunta. Eu estava tentando link para arquivos em / app / webroot / files / num (sem mod_rewrite
ie.) Maneira de plataforma agnóstica.
Eu já trabalhei em torno deste problema, armazenando esses arquivos fora da estrutura de diretórios do CakePHP.
Solução
$html->link('Pdf', '/files/myfile.pdf');
Outras dicas
Este é um pouco tangencial, mas para acesso a tal local um em Models e outros lugares que você pode simplesmente fazer isso:
$file = WWW_ROOT . DS . 'files' . DS;
Esta tática pode ser útil para arquivos de alguém acesso para o carregamento de dados estáticos, como XML ou JSON.
Isto não é recomendado para consumo público ou vinculação pública.
Eu posso confirmar que este é um problema quando mod_rewrite não está sendo usado.
<?php echo $html->link('pdf', '/files/test.pdf'); ?>
saídas
<a href="/pathtoapp/index.php/files/test.pdf">pdf</a>
Deve saída
<a href="/pathtoapp/app/webroot/files/test.pdf">pdf</a>
Isso deve funcionar
<?php echo $html->link('pdf', $this->webroot('files'.DS.'test.pdf'); ?>
Eu não tenho certeza que eu entendi a pergunta corretamente, mas aqui vai. Basicamente, qualquer arquivo que colocou na pasta webroot será acessível no servidor web, por isso, se você colocar o arquivo no webroot / files / file.pdf você simplesmente conectar-se a /files/file.pdf.
Se isso não funcionar, por favor, esclareça a sua pergunta ...
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>