Vinculação a um arquivo (por exemplo, PDF) dentro de uma visão CakePHP

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

  •  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.

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top