[NÃO RESOLVIDO] Geração de imagem

2 respostas
W

Opa…

beleza galera?

Tô precisando salvar uma imagem em meu BD, e depois recupera-la…

Encontrei aqui no fórum algumas dicas, mas me surgiu uma dúvida.

Ex de código:

try{ ... File arquivo = new File(...); FileInputStream inputStream = new FileInputStream(arquivo); PreparedStatement pstmt = conn.prepareStatement("insert into IMAGE_TABLE values (?,?)"); pstmt.setString(1,arquivo.getName()); pstmt.setBinaryStream(2,inputStream,(int)arquivo.length()); pstmt.executeUpdate(); ... } catch(...){ ... }

Este código, é simples… e teóricamente deve funcionar…

Só que o new File() chama um caminho para um arquivo, pelo que eu li e observei nos exemplos.

Eu preciso que o arquivo seja passado através de um formulário do JSF, e seja carregado direto para o BD…

Tentei assim:

File arquivo = new File(imagem.getUploadedFile());

Mas são tipos incompatíveis…

Sei lá…

Alguma dica?!

Valeu!

2 Respostas

rubinelli

Não dá para fazer algo assim?

UploadedFile arquivo = imagem.getUploadedFile();
pstmt.setBinaryStream(2,arquivo.getInputStream(),(int)arquivo.getSize());
W

Bom, cheguei no seguinte:

public String button1_action() {
        Connection conexao = getConexao();
        String teste = String.valueOf(imagem.getUploadedFile().getBytes());
        byte[] bytes = imagem.getUploadedFile().getBytes();
        
        PreparedStatement declaracao = null;  
        String sql = "insert into testeimagem (imagem) values(?)";  
        try {  
            declaracao = conexao.prepareStatement(sql);  
            declaracao.setBytes(1, bytes);
            declaracao.executeUpdate();  
        } catch (Exception ex) {  
            System.out.println("Erro ----_>>> " + ex);  
        }
        return null;
    }

Ele passa certinho, no debug, porém, não adiciona nada no que deveria ser o campo da imagem.

Talvez seja o tipo de campo.

Uso um campo do tipo bytea no postgres... devo usar outro, talvez?!

Valeu galera.

Criado 12 de novembro de 2007
Ultima resposta 12 de nov. de 2007
Respostas 2
Participantes 2