Boa tarde;
Preciso enviar para o servlet o texto e fazer o upload de imagem para o diretorio. Como passar o parametro apenas em uma ação???Preciso de apenas um formulario???
Agradeço a ajuda…
<html>
<head>
<title>Upload page</title>
</head>
<body>
<form id="formImagem" name="formImagem" method="post" action="ServletUpload" enctype="multipart/form-data">
<input type="hidden" id="tipoForm" name="tipoForm" value="imagem">
<input name="imagem" type="file" accept="image/jpeg; image/gif; image/bmp; image/png" id="imagem" class="dados" maxlength="60" tabindex="1" value="c:" style="position:absolute; top:263px; left:12px; width:500px; ">
<input name="imagem1" type="file" accept="image/jpeg; image/gif; image/bmp; image/png" id="imagem" class="dados" maxlength="60" tabindex="1" value="c:" style="position:absolute; top:303px; left:12px; width:500px; ">
<input type="submit" id="upload" name="upload" tabindex="2" style="position:absolute; top:20px; left:532px; ">
</form>
<form name="formConsultaUsuario" method="post" action="ServletUpload">
<p>Nome : <input type="text" name="textNome"></p>
<p><input type="submit" value="Inserir"></p>
</form>
</body>
</html>
Nenhuma opção para referencia???
No lado do servidor o nome chega nulo…
String nome = request.getParameter(“textNome”);
Conseguiiiiiiiiii retornar apenas uma imagem da tabela que encontra-se no diretorio, como faça para retornar uma lista, já que o usuario possui varias fotos suas… É melhor retornar um ArrayList???
public ImageIcon recuperaImagemDiretorio(String caminho) throws ClassNotFoundException, SQLException {
Connection conexao = null;
/**
Estabeleça a conexao
*/
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/nomedobanco"
String user = "user";
String password = "";
conexao = DriverManager.getConnection(url,user, password);
System.out.print("Conectado");
Statement declaracao = null;
ResultSet resultado = null;
StringBuffer sql = new StringBuffer();
sql.append("SELECT foto FROM usuario5 WHERE id = 5");
try {
declaracao = (Statement) conexao.createStatement();
resultado = declaracao.executeQuery(sql.toString());
if (resultado.next()) {
String caminhoImagem = resultado.getString("foto");
conexao.close();
if (caminhoImagem!=null){
imagem = new ImageIcon(caminho);
System.out.print(caminhoImagem);
}
}
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
return imagem;
}
}
Pesquisando encontrei
Solution B:
- download http://jakarta.apache.org/commons/sandbox/fileupload/
- invoke readHeaders() in
org.apache.commons.fileupload.MultipartStream
Como uso readHeaders???
Alguem tem um exemplo???
Meu servlet…
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("tipo");
boolean isMultiPart = FileUpload.isMultipartContent(request);
if (isMultiPart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String formulario = "";
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.getFieldName().equals("tipoForm")) {
formulario = item.getString();
}
if (!item.isFormField()) {
if (item.getName().length() > 0) {
this.inserirImagemDiretorio(item);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Usuario usuario = (Usuario)request.getAttribute("user");
out.println("<html>");
out.println("<head><title>Consulta Usuario</title></head>");
out.println("<body>");
out.println("<h1>Dados Cadastrados</h1>");
out.println("<table border=1>");
out.println("<tr>");
out.println("<br><td>Figura : </td><td>"+ "<img src=" + recuperaImagemDiretorio("imagem.JPG")+ " alt=\"Angry face\" WIDTH=102 HEIGHT=135 />"+ "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<br><td>Email : </td><td>" + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<br><td>Telefone : </td><td>" + "</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<br><td>Endereço : </td><td>" + "</td>");
out.println("</tr>");
out.println("</table>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
}
}
catch (FileUploadException ex) {
ex.printStackTrace();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}