Blz lucas arrumado, agora nao da erro ele redireciona normal mais nao esta gravando a imagem la na pasta estranho isso rss.
na classe imagem esta assim
private File pastaImagens;
public Imagens(ServletContext context) {
String caminhoImagens = context.getRealPath("/WEB-INF/imagens");
pastaImagens = new File(caminhoImagens);
pastaImagens.mkdir();
}
o formulário está como multipart-form-data? o uploadedFile está vindo preenchido? vc está copiando o getFile para um arquivo nessa pasta?
sim o form esta
<form action="<c:url value="/admin/${produto.id}/imagem"/>" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>Editar Produto</legend>
<legend>Upload de Imagem</legend>
<input type="file" name="imagem" />
<button type="submit" name="_method" value="POST">Alterar</button>
</fieldset>
</form>
meu updatefile esta assim
public void salva(UploadedFile imagem, Produto produto) {
File destino = new File(pastaImagens, produto.getId() + ".imagem");
try {
IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destino));
}catch (IOException e) {
throw new RuntimeException("Erro ao copiar imagem", e);
}
}
tente colocar uma outra pasta…
se vc está rodando o servidor pelo netbeans ou eclipse, a pasta WEB-INF/ não é a mesma da sua aplicação, é uma interna…
tenta colocar um caminho fixo para a pasta imagens, tipo “C:\Imagens”
[quote=Lucas Cavalcanti]tente colocar uma outra pasta…
se vc está rodando o servidor pelo netbeans ou eclipse, a pasta WEB-INF/ não é a mesma da sua aplicação, é uma interna…
tenta colocar um caminho fixo para a pasta imagens, tipo “C:\Imagens”[/quote]
Opa eu coloquei ai ele deu um erro mais no erro vi o caminho que o netbeans salva e criei a pasta la dentro e deu certo.
Ele esta colocando a extensao .imagem, eu posso alterar na classe para ele gravar .jpg? ou deixo .imagem mesmo?
Obrigado!!!
pode gravar com a extensão que vc quiser… só cuidado na hora de abrir
O Upload esta feito agora para mostrar esta imagem na tela eu coloquei o seguinte codigo
<a href="<c:url value="/admin/${produto.id}/editafoto" />"><img alt="Alterar Imagem" title="Alterar Imagem" src="<c:url value="/imagens/${produto.id}/imagem"/>" width="20px" height="20px"></img></a><br /></td
Esta é a parte em questao
src="<c:url value="/imagens/${produto.id}/imagem"/>
Esta correto?
bom, se essa lógica retorna um File ou InputStream ou Download da imagem, sim
Sim a logica retorna um file
public File mostra(Produto produto) {
return new File(pastaImagens, produto.getId() + ".imagem");
}
Mais nada aparece onde estou errando?
Grato
tenta copiar a url que cai nessa lógica direto no browser. Aparece a imagem?
a imagem do id passado existe na pasta?
[quote=Lucas Cavalcanti]tenta copiar a url que cai nessa lógica direto no browser. Aparece a imagem?
a imagem do id passado existe na pasta?[/quote]
sim o id esta sim
9.imagem
O caminho completo seria este
C:\Users\Fred\Documents\NetBeansProjects\modular1\build\web\imagens
mais no netbeans eu so coloco o caminho como imagens
Achei o erro a url estava assim: src="<c:url value="/imagens/${produto.id}/imagem"/>
eu mudei para src="<c:url value="/imagens/${produto.id}.imagem"/>
e funcionou!
Gostaria de Agradecer aqui a todos que me ajudaram.
Voces sao show mesmo.
Gostei do Vraptor trabalho em uma empresa de software que é a maior do sul do brasil no ramo textil. estamos estudando novas tecnologias e levarei o Vraptor para a reuniao.
Valeu galera