Apanhando inserir no campo blob

7 respostas
E

Gente eu to conseguindo capturar todas as informações do arquivo .

O problema é que nao estou conseguindo incluir o arquivo no campo Blob do oracle . :sad:

Ja tentei de varias formas e to apanhando … ajude aí quem puder !!!

Agradeço a quem ajudar .

7 Respostas

P

cara…explique melhor o seu problema !!
Codigos, stacktrace, etc

File blobFile = new File("arquivo.jpg");
FileInputStream blobInStream = new FileInputStream(blobFile);
int file_length = (int)blobFile.length();

PreparedStatement insert_prepared = null;

insert_prepared = m_conn.prepareStatement(suaQuery);
insert_prepared.setString(1, id);
insert_prepared.setBinaryStream(2, blobInStream, file_length);
insert_prepared.setString(3, tel);
insert_prepared.executeUpdate();
m_conn.commit();
E

Eu to fazendo o upload de um arquivo e to querendo incluir ele no banco !!!

O arquivo eu consigo capturar blza , o problema esta na lógica de como eu passar o conteudo deste arquivo para inserir no campo Blob …eu trannformo o arquivo em byte[] .

Como eu faria para transformar para o tipo blob e inserir no banco !?

P

Vc viu o codigo do meu post anterior ?

Vc não precisa transformar o arquivo em blob, vc precisa ter um FileInputStream

E
FormFile myFile = formularioArq.getNomeAqruivo(); //capturo o arquivo do formulario jsp

       String fileName    = myFile.getFileName();//o nome 
        
        int fileSize       = myFile.getFileSize();// o tamanha 
        
        byte[] fileData    = myFile.getFileData();//transformo em bytes
Se eu fizer deste modo , sera que ele vai capturar o conteudo do arquivo e transformar para File  !?
File blobFile = new File(myFile.getFileName());
      
        FileInputStream blobInStream = new FileInputStream(blobFile);

        int file_length = (int) blobFile.length();

Mesmo sendo do tipo blob no banco funciona !?

Valeu pela atençaõ

P

Não...vc não precisa de td isso !!

Você esta usando struts, ne ?
a classe FormFile possui o metodo java.io.InputStream getInputStream() , que ja retorna um stream.

E tambem o metodo getFileSize(), pra pegar o tamanho do arquivo.

Você não precisa passar pra byte !

no seu caso ficaria +/- assim
FormFile myFile = formularioArq.getNomeAqruivo(); //capturo o arquivo do formulario jsp 

int file_length = myFile.getFileSize() ;
PreparedStatement insert_prepared = null;

insert_prepared = m_conn.prepareStatement(suaQuery);
insert_prepared.setString(1, id);
insert_prepared.setBinaryStream(2, myFile.getInputStream() , file_length);
insert_prepared.setString(3, tel);
insert_prepared.executeUpdate();
m_conn.commit();
atenção aqui, isto aqui deve realmente interessar
insert_prepared.setBinaryStream(2, myFile.getInputStream() , file_length);
P

Isso provavelmete não funcionaria !!

E

Valeu mesmo pela força . Obrigado !

Criado 21 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 7
Participantes 2