PHP - como por imagem do lado do cliente

fish

Power Member
boas!

queria fazer uma pequena pagina para servir de form de uma base de dados em mySQL, por isso pus mãos à obra e fui aprender PHP.
ainda n fiz nada em relaçao à base de dados, mas já me deparei com um problema: como por numa pagina uma imagem guardada no cliente? isto é, +- assim:

echo "<img src="C:\Imagens\lol.jpg">"

se abrir directamente a imagem a partir do disco com o browser tudo bem, mas se a imagem for apontada por uma pagina obtida dum servidor HTTP ja n se consegue. imagino que seja por razões de segurança, até pk as vezes consigo no IE mas não no firefox ou Opera, mas há alguma maneira de contornar isto? ou alguma maneira formal de dizer ao cliente para procurar a imagem no proprio sistema de ficheiros?

obrigado
 
Qual é a lógica? Isso assim só funciona se as pessoas tiverem essa imagem no seu computador. Como é que tu sabes se a têm? Por outro lado, se a guardares no sevidor tens a certeza de que todos a vêem.
 
mto obrigado bugg3d, mas se estou a perguntar é pk preciso.

a BD e a pagina vao ficar no meu pc, e sao para eu consultar apenas. dá-me mais jeito fazer as coisas do lado do cliente pk as imagens em questao estao restritas aos restantes utilizadores deste PC atraves das permissoes NTFS, ou seja so eu as posso ver, e acontece que o apache entra em conflito com essas permissoes, e portanto nao estou a conseguir ver as imagens pelo servidor sem retirar as restriçoes aos outros utilizadores.
por outro lado, como e so pra utilizar neste pc nao me traz vantagens ver do lado do servidor.

e quanto à pergunta "qual é a lógica?", ve o jogo www.darkgalaxy.com , la tu ves as paginas e imagens do servidor, mas se quiseres podes definir nas opçoes que queres que as imagens sejam carregadas a partir do teu proprio disco rigido. isto permite poupar largura de banda, para alem de poderes costumizar a aparencia do jogo.

quando achas que uma possibilidade é absolutamente ridicula ha sempre alguem que arranja uma maneira de po-la em pratica.

por isso se alguem poder ajudar...

abraços[[]]
 
endereços

olha,

um conselho de programador..


nao uses endereços absolutos (por exemplo "c:\webdirectory\images\bla.jpg")

tenta sim usar endereços relativos

por exemplo

"images\bla.jpg"

cumpz
 
Esses links dizem sempre respeito ao ficheiro no servidor, por isso ou usas endereços relativos como disse o Miguel Correia ou tens de por o link total tipo "http://www.omeuservidor.com/o meu site/pasta com imagens/imagem1.jpg"

Nunca uses "c:\..." porque isso só vai funcionar no teu pc, quando alguem tentar aceder vai deparar com uma cruzinha vermelha muito bonita ;)
 
Tens de ter um web server e o PHP instalado, senão não abrirá a página. E esse echo que meteste acima não funcionará, devido ao uso de "´s.

Tendo em conta que n vai usar uma variável dentro do echo, poderá por assim:

PHP:
echo '<img src="C:\Imagens\lol.jpg">';

ou assim:

PHP:
<?php

blalalalal codigo php

?>

<img src="C:\Imagens\lol.jpg">

<?php

blalalalal codigo php

?>

Ah, e convem essa imagem estar na pasta web do servidor web (Apache em principio), já que esta pasta passará a ser a root. Assim sendo poderás usar "/imagens/lol.jpg" por exemplo.
 
Última edição:
apache

como WebServer podes sempre usar o Apache + o respectivo modulo PHP.

é um servidor de Web mto interessante mto alteravel .


vale a pena
cumpzzzz
 
lol, de facto ng me está a responder à questão. de qlquer maneira isto ja foi ha tanto tempo que acabei por por mesmo do lado do servidor, mas o objectivo era abrir uma pagina em que as imagens sao carregadas a partir do meu pc e não do servidor (vejam no meu post acima sobre o www.darkgalaxy.com).

de uma vez por todas: a bd é apenas para eu consultar, por isso n m interessa se as outras pessoas vêm uma cruz vermelha ou n, talvez até seja melhor negar esse acesso pq o conteudo pode ser privado.
sim, ja tenho o apache a correr, e as paginas abrem bem, o php é bem interpretado e tudo. mas se ponho uma imagem com o caminho completo ("c:\imagens\lol.jpg") para ir buscar ao cliente, ele dá um erro, diz k n encontra a imagem. no IE as vezes funciona, mas n nouros browsers, talvez por razoes de seguranca. por isso a questao era se existe alguma maneira formal de fazer o que pretendo.

obg[[]]
 
Vamos a ver se eu percebi: no fundo não existe cliente porque corre tudo na mesma máquina, querias era dar o caminho para a imagem, em vez de teres de a copiar para a pasta web do servidor é isso ??
Se assim é, e atenção, isto é baseado em IIS, uma vez que não conheço quase nada de apache, apenas tens de criar uma directoria virtual que aponte para o sítio onde tens as imagens.

Qualquer coisa como

"Alias /webpath /physical/path"

Onde "http://yourhost/webpath" lê o conteúdo de "/physical/path"

Será isto ??
 
lol não acredito que isto seja assi tao dificil de perceber, devo estar a explicar-me mal.

sim, é para executar tudo na mesma máquina mas isso não interessa. imagina que tens uma directoria com imagens no disco do teu pc. ligas-te a um servidor http remoto, que te envia uma pagina html. nessa pagina vem la um tag <img>, mas esta imagem não e carregada do servidor remoto, e sim do teu proprio pc. ou seja, podes ter varias imagens no teu pc, e o servidor simplesmente te diz qual deves usar, não te envia a imagem porque tu já a tens.

mais uma vez volto a dizer que ja resolvi o problema de outra maneira, agradeço, esta thread agora e so para discutir as vantagens ou n disto, e para esclarecer.
 
Não te estás a explicar mal, a tua pergunta é que não faz muito sentido numa lógica cliente-servidor, porque a tag <img>, bem como qualquer outra é interpretada no servidor e não no cliente, logo, ao apontares para um caminho, ele vai andar à procura desse caminho no servidor. O máximo que poderias fazer era um script que fizesse o upload para o servidor do caminho local que lhe davas, e depois construir a tag com base nisso, mas uma vez que é tudo para correr na mesma máquina, não faz sentido ...
 
a tag é passada para o cliente exactamente como está, e portanto o cliente procura-a segundo esse caminho. se fizeres ' <img src="C:\img\lol.jpg"> ' ele devia tomar esse caminho litralmente e procurar no proprio disco C:, ou n?

pois é, a maior parte disto não faz sentido se for para correr na mesma máquina. eu andava a precisar disto pq o apache tava a correr como outro utilizador, que não tinha permissoes para aceder às imagens que quero. mas já resolvi o problema e ja pus tudo do lado do server.
 
A tag é passada, mas não é interpretada no lado do cliente. Isso que queres fazer, funciona se abrires a página "per se", mas nunca num web container.
 
Back
Topo