Recuperar caminho da imagem do banco de dados e mostrar em pagina jsp

1 resposta
raphael.ricci

Tenho o seguinte servlet para gravar a imagem,

public void upload(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		boolean isMultiPart = FileUpload.isMultipartContent(request);
		if (isMultiPart) {
			System.out.println("upload");
			FileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload upload = new ServletFileUpload(factory);
			String formulario = "";
			System.out.println(formulario);
			try {
				List items = upload.parseRequest(request);
				Iterator iter = items.iterator();
				while (iter.hasNext()) {
					FileItem item = (FileItem) iter.next();
					if (item.getFieldName().equals("tipoForm")) {
						formulario = item.getString();
						System.out.println("item: " + item);
						
					}
					if (!item.isFormField()) {
						if (item.getName().length() > 0) {
							System.out.println("chama método");
							this.inserirImagemDiretorio(item);
						}
					}
				}
			} catch (FileUploadException ex) {
				ex.printStackTrace();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}

	private void inserirImagemDiretorio(FileItem item) throws IOException, ServletException {
		
		File diretorio = new File("/imagens");
		System.out.println("diretorio: "  + diretorio);
		if (!diretorio.exists())
			diretorio.mkdir();
		String nome = item.getName();
		
		String arg[] = nome.split("////");
		for (int i = 0; i < arg.length; i++)
			nome = arg[i];
		System.out.println(nome);
		URL im = getClass().getResource("imagem.jpg");
		Image image = Toolkit.getDefaultToolkit().getImage(im);
		File file = new File(diretorio, nome);
		System.out.println("file :" + file);
		String teste = String.valueOf(file);
		System.out.println(teste);
		FileOutputStream output = new FileOutputStream(file);
		InputStream is = item.getInputStream();
		byte[] buffer = new byte[2048];
		int nLidos;
		while ((nLidos = is.read(buffer)) >= 0) {
			output.write(buffer, 0, nLidos);
		}
		output.flush();
		output.close();
		System.out.println(buffer);
		BeanImagem imagem = new BeanImagem(null,nome);
		imagem.setId(22);			
		new FotoDao().salvarUsuario(imagem);
	
	
	}

E tenho esse Dao para recuperar a imagem, mas eu não estou sabendo como recuperar a imagem no servlet e também no jsp se alguem puder ajudar.
Já olhei alguns tópicos aqui no guj, mas não encontrei o que eu queria.

1 Resposta

otOtavio

olha quando salvo imagem no banco, normalmente para recuperar faço assim:

imagemEmpresa = new DefaultStreamedContent(new ByteArrayInputStream(empresa.getLogomarca()));

onde a imagemEmpresa tem seus gets e sets. para seta-la no <p:graficImage> do prime.

Criado 13 de setembro de 2012
Ultima resposta 13 de set. de 2012
Respostas 1
Participantes 2