Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2011, 15:25
Avatar de jrevilla
jrevilla
 
Fecha de Ingreso: septiembre-2011
Ubicación: Lima, Peru, Peru
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 2
Información Error con input "text","file" y servlets multipart form-data

Tengo un formulario:

Código HTML:
Ver original
  1. <title>subir archvio</title>
  2. </head>
  3. <form action="<%=request.getContextPath()%>/ServletSubir"
  4. method="post" name="imagen"  enctype="multipart/form-data">
  5. <table cellpadding="3.0">
  6.     <tr>
  7.     <td>Buscar Imagen:</td>
  8.     <td><input type="file" name="imagen" ></td>
  9.  
  10.     </tr>
  11.     <tr>
  12.         <td>DNI:</td>
  13.         <td><input type="text" name="txtDni"></td>
  14.     </tr>
  15.     <tr>
  16.         <td>Nombres:</td>
  17.         <td><input type="text" name="txtNombres"></td>
  18.     </tr>
  19.     <tr>
  20.         <td>Apellidos:</td>
  21.         <td><input type="text" name="txtApellidos"></td>
  22.     </tr>
  23.     <tr>
  24.         <td>Dirección:</td>
  25.         <td><input type="text" name="txtDireccion"></td>
  26.     </tr>
  27.     <tr>
  28.         <td>Telefono:</td>
  29.         <td><input type="text" name="txtTelefono"></td>
  30.     </tr>
  31.     <tr>
  32.         <td><input type="reset" value="Limpiar" ></td>
  33.         <td><input type="submit" value="Enviar Formulario"> </td>
  34.     </tr>
  35. </form>
  36. </body>
  37. </html>

En el cual deseo enviar un archivo y otros datos, lo que me da un error . La solución sería tener un formulario distinto para el archivo y poner el enctype='multipart/form-data' y otro para el resto de los dato sin el enctype='multipart/form-data'.

Estoy usando un servlet que recibe los datos del formulario, por si les ayuda aqui va mi servlet:
Código Javascript:
Ver original
  1. package servlet;
  2.  
  3. import dean.*;
  4.  
  5. import java.io.IOException;
  6.  
  7. import javax.servlet.RequestDispatcher;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.annotation.WebServlet;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13.  
  14.  
  15. @WebServlet("/ServletSubir")
  16. public class ServletSubir extends HttpServlet {
  17.     private static final long serialVersionUID = 1L;
  18.    
  19.  
  20.    
  21.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  22.         // TODO Auto-generated method stub
  23.     }
  24.  
  25.    
  26.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27.        
  28.         String imagen = request.getParameter("imagen");
  29.         String dni = request.getParameter("txtDni");
  30.         String nombres = request.getParameter("txtNombres");
  31.         String apellidos = request.getParameter("txtApellidos");
  32.         String direccion = request.getParameter("txtDireccion");
  33.         String telefono = request.getParameter("txtTelefono");
  34.        
  35.         System.out.println("imagen ruta> "  + imagen);
  36.         RequestDispatcher dispatcher = null;
  37.        
  38.         Subir bean = new Subir();
  39.         bean.setDni(dni);
  40.         bean.setNombres(nombres);
  41.         bean.setApellidos(apellidos);
  42.         bean.setDireccion(direccion);
  43.         bean.setTelefono(telefono);
  44.        
  45.         request.setAttribute("imagen", imagen);
  46.         request.setAttribute("dni", dni);
  47.         request.setAttribute("nombres", nombres);
  48.         request.setAttribute("apellidos", apellidos);
  49.         request.setAttribute("direccion", direccion);
  50.         request.setAttribute("telefono", telefono);
  51.        
  52.         dispatcher = getServletContext().getRequestDispatcher("/mensaje.jsp");
  53.         dispatcher.forward(request, response);
  54.        
  55.        
  56.        
  57.     }
  58.  
  59. }

Se puede tener todo en un formulario (archivos y texto, area, etc), y si se puede, que enctype poner????

por ahora solo quiero enviarloa una pagina llamada mensaje:

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>Mensaje</title>
  4. </head>
  5. <body>
  6. <table>
  7.     <tr>
  8.         <td>Imagen:</td>
  9.         <td><img src="<%=request.getAttribute("imagen")%>"/></td>
  10.     </tr>
  11.     <tr>
  12.         <td>DNI:</td>
  13.         <td><%=request.getAttribute("dni")%></td>
  14.     </tr>
  15.     <tr>
  16.         <td>Nombres:</td>
  17.         <td><%=request.getAttribute("nombres")%></td>
  18.     </tr>
  19.     <tr>
  20.         <td>Apellidos:</td>
  21.         <td><%=request.getAttribute("apellidos")%></td>
  22.     </tr>
  23.     <tr>
  24.         <td>Direccion:</td>
  25.         <td><%=request.getAttribute("direccion")%></td>
  26.     </tr>
  27.     <tr>
  28.         <td>Telefono:</td>
  29.         <td><%=request.getAttribute("telefono")%></td>
  30.     </tr>
  31.  
  32. </table>
  33. </body>
  34. </html>

Lo que molesta es que cuando esta con "multipart/form-data" todos mis campos en mensaje.jsp salen como NULL

Si alguien puede explicarme que debo hacer, o solo un ejemplo pequeño, se que me ayudaria bastante

Gracias