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

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!

Não dá para fazer algo assim?

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

Bom, cheguei no seguinte:

[code] 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;
}[/code]

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.