1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Exibindo imagem do banco mysql - consegui, mas apenas estaticamente. E agora?

Salve, galera! Ainda to aqui naquele problema de exibir a imagem gravada no banco. Consegui fazer a imagem aparecer apenas estaticamente, com o código abaixo:

 <h:graphicImage value="DisplayImage?Image_id=1" width="50" height="50"/>

Este é o código de chamada do dataTable:

<p:dataTable id="grid" var="lista" value="#{usuarioController.listaUsuarios}"/>

Esse é o codigo do metodo listaUsuarios:

public DataModel getListaUsuarios() {
        UsuarioDAO dao = new UsuarioDAO();
        listaUsuarios = new ListDataModel(dao.listarUsuario());
        return listaUsuarios;
    }

E, finalmente, essa é a classe DisplayImage:

package beans;

import dao.Database;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author javaknowledge
 */
public class DisplayImage extends HttpServlet {

    private static final long serialVersionUID = 4593558495041379082L;

    @Override
    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {
        Statement stmt = null;
        ResultSet rs;
        InputStream sImage;
        try {

            String id = request.getParameter("Image_id");
            System.out.println("inside servlet–>" + id);

            Connection con = Database.getConnection();
            stmt = con.createStatement();
            String strSql = "select image from upload_image where image_id='" + id + "' ";
            rs = stmt.executeQuery(strSql);
            if (rs.next()) {
                byte[] bytearray = new byte[1048576];
                int size = 0;
                sImage = rs.getBinaryStream(1);
                response.reset();
                response.setContentType("image/jpeg");
                while ((size = sImage.read(bytearray)) != -1) {
                    response.getOutputStream().
                            write(bytearray, 0, size);
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Gente, to enrolado meeeeesmo aqui. Quem puder dar uma forcinha aí, por favor, ajudem um pobre iniciante, rsrs. Obrigado, pessoal. https://www.filepicker.io/api/file/D84yIWe0TIeIvbUzH19g

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee ou faça a sua própria pergunta.