Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Santos Brito

Constituir URL's Permanentes - dirname(__FILE__)

Recommended Posts

Nobres, boa tarde.

O título do tópico já é meio que auto explicativo, mas ainda sim deixa eu explicar a minha dúvida.

 

Abaixo a estrutura das pastas:

root.jpg

 

 

A Pasta 'upload' possui arquivos enviados pelo usuário, e possuo uma classe responsável por obter o nome do arquivo enviado e construir uma tag <img> com o caminho do arquivo.

O grande problema é que em cada pasta que eu tentar retornar a imagem construída pela classe, eu necessitaria alterar o script.

Poderia retornar apenas o nome do arquivo gravado no banco de dados e criar manualmente a tag <img>, mas tenho como intuito tornar a aplicação o mais automática possível.

 

Já tentei definir essa URL BASE na classe principal do aplicativo, e até consigo fazer includes e requires, mas quando se trata de links e imagens, é sempre falho:

$this->path_to_api = str_replace( "\\", "/", dirname( __FILE__ ) ) . '/';

Existe alguma forma de criar uma URL permanente para que a imagem ou link fosse acessada de qualquer pasta da aplicação?

Quem puder ajudar, eu agradeço de coração.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se entendi bem. sua aplicação tem mais de um usuário? se tiver seria bom ter uma pasta para cada um ou salvar as imagens começando com a id do usuário e aí construir o caminho meio tipo

$img_caminho = "uploads/" . $_SESSION["id_user"] . "restonomeimagem.jpg";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está correto o $path_to_api, que cria a URL base. Mas esse path depende do arquivo onde __DIR__ é chamado.

Preste atenção nesse ponto. Se estiver dentro de app, você terá de voltar um diretório (com "..") para acessar o public.

 

Ao exibir a tag img, qual é o path gerado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está correto o $path_to_api, que cria a URL base. Mas esse path depende do arquivo onde __DIR__ é chamado.

Preste atenção nesse ponto. Se estiver dentro de app, você terá de voltar um diretório (com "..") para acessar o public.

 

Ao exibir a tag img, qual é o path gerado?

 

Consegui entender depois de muita pesquisa, que este método cria uma URL 'física', o path gerado na tag img é "C:/wamp/www/2014/meuprojeto/public/upload/c26a796bac2680aa86a818cd3d83a0af.jpg" (visto que o arquivo que cria o path está na pasta principal do projeto), como havia dito, realmente funciona quando se trata de "requires" e "includes", mas pra retornar o path em tags HTML, precisei gerar uma URL virtual, desta forma:

$this->absolute_dir = str_replace( "\\", "/", dirname( __FILE__ ) ) . '/';
$this->relative_dir = str_replace($_SERVER['DOCUMENT_ROOT'],'',$this->absolute_dir);
$this->path_to_api = $_SERVER['REQUEST_SCHEME'] .'://'. $_SERVER['SERVER_NAME'] . '/' . $this->relative_dir . '/' );

E agora o path retorna:

"http://localhost/2014/meuprojeto/public/upload/c26a796bac2680aa86a818cd3d83a0af.jpg"

Obrigado também 'marsolim' pela atenção.

Agradeço o apoio Beraldo, tenho aprendido bastante lendo seus posts.

 

CLOSED :lock:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.