alguém pode me ajudar?
eu estou fazendo um upload de fotos, essas sao gravadas em uma pasta direto no meu projeto… so que eu quero que ao fazer o upload ja grave so o nome do arquivo no banco de dados…
ex:
gravar apenas foto.jpg no banco e nao
c:/webapps/projeto/foto.jpg
É isso ou vc quer saber como fazer o Upload e gravar a foto numa pasta?
F
febeckers
Cara seria isso mesmo so que nao sei fazer… hehe
engracado fiz o mais dificil que é o upload em si e nao consigo gravar so o nome…
vo posta o codigo derrepente tu possa me ajudar…
Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jdbc:postgresql://localhost/imobiliaria","postgres","postgres2");Statementst=con.createStatement();//listatodasascidadesdobancost.executeUpdate("insert into teste_imagem(imagem) values ('"+request.getParameter("tf_imagem")+"')");if(MultipartFormDataRequest.isMultipartFormData(request)){//UsesMultipartFormDataRequesttoparsetheHTTPrequest.MultipartFormDataRequestmrequest=newMultipartFormDataRequest(request);Stringtodo=null;if(mrequest!=null)todo=mrequest.getParameter("todo");if((todo!=null)&&(todo.equalsIgnoreCase("upload"))){Hashtablefiles=mrequest.getFiles();if((files!=null)&&(!files.isEmpty())){UploadFilefile=(UploadFile)files.get("tf_imagem");if(file!=null)upBean.store(mrequest,"tf_imagem");out.println("<script>alert('NOME DO ARQUIVO: "+file.getFileName()+" TAMANHO DO ARQUIVO: "+file.getFileSize()+" TIPO DO ARQUIVO: "+file.getContentType()+"');</script>");}else{out.println("<li>No uploaded files");}}elseout.println("<BR> todo="+todo);}}
ah nao to conseguindo gravar nada… ta gravando no banco “null” mas o text aonde eu pego e o campo aonde eu gravo estao corretos!!!
se tu puder me ajudar agradeco…
tiagosarno
File arquivo;
String nomeArquivo = null;
JFileChooser fcArquivo = new JFileChooser();
fcArquivo.setDialogTitle("Abrir Arquivo ...");
fcArquivo.setApproveButtonText("Abrir");
fcArquivo.setDialogType(javax.swing.JFileChooser.OPEN_DIALOG);
if(fcArquivo.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
arquivo = fcArquivo.getSelectedFile();
nomeArquivo = arquivo.getName();
}
/*
DAQUI PARA FRENTE É SÓ COLOCAR A VARIAVEL nomeArquivo
EM SUA QUERY SQL NA COLUNA DE FOTO E SERÁ GRAVADO
POR EXEMPLO "minha_foto_3x4.jpg"
*/
Dê uma olhada no código que fiz ai e vê se te serve, espero ter ajudado. [ HcK ]
Romeo
Então, o negócio que precisa gravar esta aqui.
request.getParameter(“tf_imagem”)
Mas como não sei o tipo que é o objeto request fica dificil te ajudar, pelo que vc comentou deve ser Javabean, certo?
Faça o seguinte, mande o programa ler esta variavel antes de coloca-la no Statement e vejo no q dá, provavelmente ai esta o erro…
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/imobiliaria", "postgres", "postgres2");
Statement st = con.createStatement();
//lista todas as cidades do banco
System.out.println("imagem = "+request.getParameter("tf_imagem")); // - acrescenta isso
st.executeUpdate("insert into teste_imagem(imagem) values ('"+request.getParameter("tf_imagem")+"')");
se não aparecer o caminho posta a classe do objeto request
fazer um upload para uma pasta no projeto e gravar apenas o nome do arquivo!!!
da uma olhada no primeiro codigo e o que estamos discutindo!!!
valeu te mais!
nbluis
Ok febeckers, a finalidade eu entendi…
Mas Requests, são utilizados em Servlets, JFileChooser em aplicações gráficas java e JavaBeans como objetos de contexto de JSP’s…
Três coisas diferentes…
Na verdade, perguntei por que todas as idéias que de deram até agora foram totalmente para o escanteio…
O que voce estava utilizando sobre MultipartFormDataRequest está totalemente correto, mas acho que os demais amigos ai estão confundindo tudo…
Valeu…
F
febeckers
ah e tu podes me ajudar???
valeu…
Romeo
Mas então nbluis, ele disse que essa parte não esta com problema, o problema esta no preparedStatement dele, vc não concorda?
Romeo
Pois entao foi isso que eu tentei te explicar, esta retornado “null” simplesmente nao pega o que esta no tf_imagem, é como se estivesse em branco.
É Javebean sim.
vc tem alguma ideia…
Posta o código da classe do objeto request
F
febeckers
Pessoal mas esta postado o codigo inteiro…
desde o UPLOAD ate o momento em que grava no banco!!!
esta tudo ai!!!
valeu…
Romeo
Então febeckers, o problema não esta neste método aqui?
request.getParameter("tf_imagem")
a pergunta é, como vc pega e onde vc pega esse parametro? Vc não cria um objeto request, onde está essa declaração? Onde está o método getParameter(String)???
F
febeckers
entao eu coloquei a conexao depois de fazer o upload, crio uma variavel do tipo string antes de fazer o upload mas ela me retorna “null”…
estou lendo aqui algo que fala que o request.getParamete(“item”) nao funciona com multipart/form-data isso é verdade?? pq se for o meu erro esta ai!!!
{
String imagem = request.getParameter("tf_imagem");
if (MultipartFormDataRequest.isMultipartFormData(request))
vo posta o codigo assim tal como esta no meu projeto!!
{Stringimagem=request.getParameter("tf_imagem");if(MultipartFormDataRequest.isMultipartFormData(request)){// Uses MultipartFormDataRequest to parse the HTTP request.MultipartFormDataRequestmrequest=newMultipartFormDataRequest(request);Stringtodo=null;if(mrequest!=null)todo=mrequest.getParameter("todo");if((todo!=null)&&(todo.equalsIgnoreCase("upload"))){Hashtablefiles=mrequest.getFiles();if((files!=null)&&(!files.isEmpty())){UploadFilefile=(UploadFile)files.get("tf_imagem");if(file!=null)upBean.store(mrequest,"tf_imagem");//out.println("<script>alert('NOME DO ARQUIVO: "+file.getFileName()+" TAMANHO DO ARQUIVO: "+file.getFileSize()+" TIPO DO ARQUIVO: "+file.getContentType()+"');</script>"); }else{out.println("<li>No uploaded files");}}elseout.println("<BR> todo="+todo);}Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jdbc:postgresql://localhost/imobiliaria","postgres","postgres2");Statementst=con.createStatement();[b]System.out.println("imagem = "+imagem);[/b]<=Paraveroqueestapegando!st.executeUpdate("insert into imagem_teste(imagem) values ('"+request.getParameter("tf_nome")+"')");}
Romeo
[color=darkred]st.executeUpdate(“insert into imagem_teste(imagem) values (’”+request.getParameter(“tf_nome”)+"’)");[/color]
Não passe esse request passe outra coisa. tenta 1 desses aqui:
st.executeUpdate(“insert into imagem_teste(imagem) values (’”+file.getFilename()+"’)");
st.executeUpdate(“insert into imagem_teste(imagem) values (’”+imagem+"’)");
Algumas destas variaveis deve ter o endereço…
Se imagem não funcionar poe
String imagem= request.getFiles().getName();// Não sei se a classe aceita, mas tenta
F
febeckers
nenhum cara…
file.getFilename()… nem roda…
e o que eu mando gravar a imagem ele grava null, pois esta pegando null
hehe!! complicado!
inté…
F
febeckers
Pessoal agradeco a todos que me ajudaram a conseguir chegar a essa conclusao…
esta funcionando perfeitamente… gravando o caminho no banco…
{Stringimagem="";<=CrieiumaStringsemnada.if(MultipartFormDataRequest.isMultipartFormData(request)){MultipartFormDataRequestmrequest=newMultipartFormDataRequest(request);Stringtodo=null;if(mrequest!=null)todo=mrequest.getParameter("todo");if((todo!=null)&&(todo.equalsIgnoreCase("upload"))){Hashtablefiles=mrequest.getFiles();if((files!=null)&&(!files.isEmpty())){UploadFilefile=(UploadFile)files.get("tf_imagem");if(file!=null)upBean.store(mrequest,"tf_imagem");imagem=file.getFileName();<=Pegoonomedoarquivo//out.println("<script>alert('NOME DO ARQUIVO: "+file.getFileName()+" TAMANHO DO ARQUIVO: "+file.getFileSize()+" TIPO DO ARQUIVO: "+file.getContentType()+"');</script>"); }else{out.println("<li>No uploaded files");}}elseout.println("<BR> todo="+todo);}Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jdbc:postgresql://localhost/imobiliaria","postgres","postgres2");Statementst=con.createStatement();st.executeUpdate("insert into imagem_teste(imagem) values ('"+imagem+"')");Gravonobanco...}
muito simples…
Obnrigado para quem me ajudou… hehe
te mais e se alguem estiver com alguma duvida que eu possa ajudar manda uma msg privada
F
febeckers
Pessoal agradeco a todos que me ajudaram a conseguir chegar a essa conclusao…
esta funcionando perfeitamente… gravando o caminho no banco…
{Stringimagem="";<=CrieiumaStringsemnada.if(MultipartFormDataRequest.isMultipartFormData(request)){MultipartFormDataRequestmrequest=newMultipartFormDataRequest(request);Stringtodo=null;if(mrequest!=null)todo=mrequest.getParameter("todo");if((todo!=null)&&(todo.equalsIgnoreCase("upload"))){Hashtablefiles=mrequest.getFiles();if((files!=null)&&(!files.isEmpty())){UploadFilefile=(UploadFile)files.get("tf_imagem");if(file!=null)upBean.store(mrequest,"tf_imagem");imagem=file.getFileName();<=Pegoonomedoarquivo//out.println("<script>alert('NOME DO ARQUIVO: "+file.getFileName()+" TAMANHO DO ARQUIVO: "+file.getFileSize()+" TIPO DO ARQUIVO: "+file.getContentType()+"');</script>"); }else{out.println("<li>No uploaded files");}}elseout.println("<BR> todo="+todo);}Class.forName("org.postgresql.Driver");Connectioncon=DriverManager.getConnection("jdbc:postgresql://localhost/imobiliaria","postgres","postgres2");Statementst=con.createStatement();st.executeUpdate("insert into imagem_teste(imagem) values ('"+imagem+"')");Gravonobanco...}
muito simples…
Obnrigado para quem me ajudou… hehe
te mais e se alguem estiver com alguma duvida que eu possa ajudar manda uma msg privada