Eu estou utilizando o pacote Fileupload para incluir uma imagem no banco de dados. O problema é que quando eu mando carregar a imagem no array de bytes o compilador não reconhece a função “upload.read(imagem, 0, size)”.
Eu estou utilizando o pacote Fileupload para incluir uma imagem no banco de dados. O problema é que quando eu mando carregar a imagem no array de bytes o compilador não reconhece a função “upload.read(imagem, 0, size)”.
Será que alguém sabe o porque?
Olá, seja bem vindo ao Pj!!!
Posta o código aí pra gente tentar te ajudar!
T
TiroPJ
O código é esse
<%@pageimport="org.apache.commons.fileupload.*"%><%@pageimport="java.util.*"%><%@pageimport="java.sql.*"%><%@pageimport="meuPacote.*"%><html><bodybgcolor="#FFFFFF"><%//Verificandoseoformpossuicampo(s) com dados bináriosif(FileUpload.isMultipartContent(request)) {//criandooobjetoparacuidardouploadDiskFileUploadfu=newDiskFileUpload();//setandootamanhomaximoembytesparauploadfu.setSizeMax(800000);try{//parseandoarequisiçãoeretornandoumalistacomoscampos//encontrando,tantotextos,quantodadosbinários(arquivos binários)Listitems=fu.parseRequest(request);Iteratori=items.iterator();FileItemfi;Stringcmt=null;//laçoparapegartodososcamposdoformwhile(i.hasNext()) {fi=(FileItem)i.next();//testeparaverseocampoemquestãoécampodoformulario//ouumarquivoif(fi.isFormField()) {//pegandoovalordocampodoformulário(comentário)cmt=fi.getString();}else{//obtendootamanhodafotointsize=(int) fi.getSize();//arraydebyteparaarmazenarafotobyte[] imagem = new byte[size];//carregandoafotonoarrayupload.read(imagem, 0, size);//chamadoométodoestáticoparaconectarcomobancoMyConnectionmycon=newMyConnection();Connectioncon=mycon.createConnection("fapesp");//ondetem???,serásubstituídoporvaloresposteriormente.PreparedStatementpstm=con.prepareStatement("INSERT INTO Arquivo (nome, arq) VALUES (?, ?)");//inserindoocomentárionolugardaprimeirainterrogaçãopstm.setString(1, cmt);//inserindoafotonolugardasegundainterrogaçãopstm.setBytes(2, imagem);//executandoaquerypstm.executeUpdate();}}}catch(Exception e) {e.printStackTrace();}}else{out.print("O Formulario nao possui dados binários");}%><h2>Fontoinseridacomsucessonobancodedados!</h2></body></html>
T
TiroPJ
A parte do código q tah dando erro é essa
// obtendo o tamanho da foto
int size = (int) fi.getSize();
// array de byte para armazenar a foto
byte [] imagem = new byte[size];
// carregando a foto no array
upload.read(imagem, 0, size);
J
JavaDropsPJ
Não achei onde você instanciou o objeto upload.
T
TiroPJ
Mas então como eu instancio o obj upload? Pq eu tentei antes e começou a dar mais erro do que sem instanciar
T
TiroPJ
Pronto. Descobri. Obrigado pela dica de instanciar…