Meu conselho eh nao armazenar imagens no banco de dados…Como diria meu professor, imagens em banco de dados eh problema futuro.
Uma maneira que resolvi meus problemas foi adicionar minhas imagems em um ftp, assim sempre q preciso exibilas vou no ftp e pego a q preciso, por exemplo em um cadastro de cliente cujo a imagem eh referenciada por seu cpf, pego o cpf do cliente e trago atraves do ftp.
eh uma solucao
o caso eh, evite gravar imagens em banco de dados…por experiencia propria, eh problema futuro.
Eu adicionei o que você me passou no projeto que estou desenvolvendo, mas só tive um problema… Sabe me dizer como eu faço pra resgatar o nome da imagem pra gravar a mesma no banco ?
E ele deu um erro: [color=red]javax.imageio.IIOException: Can’t read input file![/color]
Stringimagem=null;Integeridgaleria=null;DiskFileItemFactoryfileupload=newDiskFileItemFactory();ServletFileUploadsfu=newServletFileUpload(fileupload);Stringpath="C:/Intranet/WebContent/galerias";try{sfu.setSizeMax(50*1024*1024);Listlist=sfu.parseRequest(request);for(Iteratorit=list.iterator();it.hasNext();){FileItemitem=(FileItem)it.next();if(!item.isFormField()){imagem=item.getName();imagem=(newFile(imagem)).getName();BufferedImageimg=ImageIO.read(newFile(path+"/"+imagem));BufferedImagenovaImagem=newBufferedImage(600,400,img.getType());item.write(newFile(path+"/"+novaImagem));item.getOutputStream().close();}if(item.getFieldName().equals("idgaleria")){idgaleria=newInteger(item.getString());}}GaleriaDaogd=newGaleriaDao();try{try{gd.enviarGaleria(idgaleria,imagem);request.setAttribute("mensagem","Imagem cadastrada com sucesso.");
Muito obrigado amigo,
aguardo resposta.
ViniGodoy
Vc tem duas opções:
a) Salvar o nome do arquivo da imagem no banco:
File fileNovaImagem = new File(path + "/" + novaImagem);
E aí salva:
fileNovaImagem.getAbsolutePath(); (ou getCanonicalPath() se quiser o caminho completo)
b) Salvar a imagem em si num blob (não recomendo).