Bom dia.
Estou com um problema interessante, gostaria de saber se alguem já passou por isso.
Estou usando JDeveloper, OC4J 10.x.x e PostgreSQL (não perguntem pq, é uma longa história).
Em uma das minhas tabelas, eu tenho o campo Bytea (blob).
A aplicação faz o seguinte.
O usuário pode fazer upload (via web) de um arquivo e este arquivo é salvo neste campo Bytea.
Normalmente este arquivo é um xls.
Até ai, tranquilo.
O problema é que, ALGUMAS VEZES, ao fazer download deste arquivo, ele vem corrompido.
Não consegui descobrir se o problema é no Upload ou no Download.
Fiz uma aplicaçãozinha rápida usando JDBC mesmo, q le um arquivo excel, salva no postgresql (bytea), depois recupera, e ele não foi corrompido.
O meu campo Bytea do postgres, é mapeado como byte[] (private byte[] redeDiagrama; ) no meu Entity.
E para fazer download e upload, eu uso o código abaixo.
Não consegui definir se o problema está no upload, download, camada de persistência. Só consegui ver que não é no postgre.
Alguem já passou por algo assim?
Obrigado.
Daniel I. Machado
public String carregarRedeFile() throws Exception {
UploadedFile redeUploaded = (UploadedFile) redeInputFile.getValue();
if (redeUploaded == null) {
rede.setRedeDiagrama(null);
rede.setRedeNomeDiagrama(null);
return null;
}
rede.setRedeDiagrama(new byte[(int) redeUploaded.getLength()]);
rede.setRedeNomeDiagrama(redeUploaded.getFilename());
redeUploaded.getInputStream().read(rede.getRedeDiagrama());
showRedeFile();
return null;
}
A classe UploadedFile é uma interface do Jdev, q é implementada pela classe CoreInputFile, que em tese, tem o arquivo.