Bom dia pessoal!
Eu não estou conseguindo carregar uma imagem que está no meu diretório de rede…
Estou utilizando Eclipse, VRaptor, Hibernate…
Eu criei o ImagemController:
package br.com.empresa.controller;
import java.io.File;
import javax.inject.Inject;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.empresa.dao.ProdutoDao;
import br.com.empresa.modelo.Produto;
@Controller
public class ImagemController {
@Inject
private ProdutoDao produtoDao;
@Get("download/{id}")
public File imgProduto(Integer id) {
Produto produto = produtoDao.buscaProdutoPorId(id);
String caminho = produto.getLocalImagem() + "\\" + produto.getImagem();
/* Trocando '/' por '\\' */
caminho = caminho.replace("\\", "\\\\");
/* Verificando se o caminho aponta para uma imagem */
if (!caminho.contains(".jpg")) {
return null;
} else {
File arquivo = new File(caminho);
return arquivo;
}
}
}
E no meu .jsp, onde eu quero mostrar a imagem, tentei de duas formas:
<div class="col-md-2">
<label>Imagem do produto: </label>
<c:if test="${produto.localImagem != null && produto.imagem != null}">
<img src="<c:url value="/imagem/imgProduto?caminho=${arquivo.caminho}"/>"/>
</c:if>
<c:if test="${produto.localImagem != null && produto.imagem != null}">
<img src="<c:url value="/imagem/imgProduto/${produto.id}"/>"/>
</c:if>
</div>
<div class="col-md-4"></div>
</div><br />
Não carrega a imagem… Abri o console do chrome e verifiquei que está gerando o erro:
Failed to load resource: the server responded with a status of 404 ()
Para ambas as tags.