Galera,
Preciso fazer o upLoad de um arquivo da maquina do cliente para depois gravá-lo em um banco ORACLE aqui no servidor, mas estou com os seguintes problemas:
1°) Quando tento inserir no form um campo do tipo FormFile recebo o erro “argument type mismatch” e tenho certeza de que é por causa dele pois se o retiro do .jsp o erro some e a aplicação “funciona”;
2°) Se conseguir buscar o arquivo como deverei proceder para gravá-lo no banco, estou sem a mínima noção de como fazê-lo;
Estou utilizando o Strut e o JBoss para montar minha aplicação, se alguém de vcs poder me ajudar…
- Talvez esteja faltando coisa na tag FORM. Veja se tem o type. Exemplo:
<form action=“seuUpload.do” method=“POST” enctype=“multipart/form-data”>
- O Struts tem um tal de FormFile que te retorna os bytes do arquivo enviado. E para inserir no Oracle:
oracle.sql.BLOB blob;
String cmd = "select img from SUA_TABELA for update";
ResultSet rset = stmt.executeQuery(cmd);
if(rset.next()) {
blob = ((OracleResultSet)rset).getBLOB("img");
readFromFile(blob);
writeToFile(blob);
}
[code]void readFromFile (BLOB blob) throws Exception {
File binaryFile = new File(“TEST.gif”); //insert your file name here.
FileInputStream in = new FileInputStream(binaryFile);
OutputStream out = blob.getBinaryOutputStream();
int chunk = blob.getChunkSize();
System.out.print("The chunk size is " + chunk);
byte<> buffer = new byte;
int length;
while ((length = in.read(buffer)) != -1)
out.write(buffer, 0, length);
in.close();
out.close();
}
static void writeToFile (BLOB blob) throws Exception {
int chunk = blob.getChunkSize();
byte<> buffer = new byte;
int length;
FileOutputStream outFile = null;
outFile = new FileOutputStream(“out.gif”);
InputStream instream = blob.getBinaryStream();
// Fetch data
while ((length = instream.read(buffer)) != -1) {
outFile.write(buffer, 0, length);
}
// Close input and output streams
instream.close();
outFile.close();
}[/code]
O código não está testado, mas é algo assim.
Valeu, danieldestro!
Não era bem o que eu queria mas já ajudou muito.
Com a dica que vc me deu já tenho uma idéia de como fazer a inserção, no banco ORACLE, do arquivo que eu buscar.