Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Como adicionar uma imagem "dinâmida" no meu form.jsp

Boa tarde pessoal!

Como eu consigo adicionar um link para uma imagem no meu form.jsp...

Sendo que o <img src= LOCAL_IMAGEM + NOME_IMAGEM> vindos da tabela de Produtos...

Eu tentei criar uma função JavaScript:

<script type="text/javascript">
    function imagemProduto(){
        var imgProd = document.getElementById("localImagem") + "/" +  document.getElementById("imagem");
    }
</script>

E no form.jsp:

<div class="col-md-1">
    <label>Imagem do produto: </label>
        <img src = imgProd >
</div>

Não mostrou a imagem no browser... Abri o console do Chrome e ví a msg: ```` Failed to load resource: the server responded with a status of 404 ()


Mudei o scr para:


E gerou outro erro, no browser:

Not allowed to load local resource: file:///C:/Temp/logo.jpg ```

6 respostas

Você precisa colocar no link uma url que é valida na aplicação. Onde a imagem ta gravada? Se estiver gravada na pasta web da aplicação, o link precisa ser gerado pegando o nome da imagem e montando a url para o endereço.. se a imagem não tiver gravada em nenhuma pasta web, aí complica.. vc precisa fazer um código para servir a imagem.

Boa noite Alberto!

As não ficarão gravadas na pasta web da aplicação... Elas irão ficar ficar no servidor... Pois tenho +/- 1.7 GB de imagens... Um diretórios compartilhado para todas as pessoas que terão acesso ao catálogo... Por exemplo => F:\Produtos\Catalogo\Imagens

Eu tenho essa informação na tabela, é o atributo "localImagem"

E eu tenho q concatenar esse atributo "localImagem", com outro atributo existente na tabela chamado "imagem", que possui por exemplo o nome "celular.jpg"

Então a url deverá ficar

<img scr="localImagem + imagem">

Obrigado!

então.. não vai funcionar assim... se fosse só isso, vc carregava o objeto e chamava os métodos que retornam os pedaços.. como essa imagem está fora do servidor, vc vai precisar de um controller que receba o caminho da imagem, busque ela no sistema de arquivos e escreva no response..

O problema é que vc perde um monte de otimização que o servidor já faz para vc.. por isso que nesses casos as empresas preferem colocar as imagens em lugares como a amazon s3 ou google storage.

Então Alberto, no caso desse projeto ele será acessado somente na rede INTERNA da empresa...

A aplicação não será disponibilizada na WEB...

E verifiquei o diretório com as imagens e eu tenho +/- 1800 imagens...

Na minha opnião não é viável, incluir essa quantidade de imagens no projeto...

E também eu não posso armazenar essas imagens no amazon s3 ou google storage, porque em algumas estações que irão acessar o catálogo não possuem acesso liberado a internet...

Como eu poderia implementar esse controller que receba o caminho da imagem, busque ela no sistema de arquivos e escreva no response.

Vc poderia me dar algum exemplo dessa implementação...

Obrigado!!

Opa, aqui tem um exemplo => http://stackoverflow.com/questions/8623709/output-an-image-file-from-a-servlet

tem muitos por aí.. a ideia é vc pegar e adaptar para o vraptor. Quando tiver com uma primeira versão, é só avisar que a gente da uma olhada

solução!

SEM SOLUÇÂO