Tengo un formulario:
Código HTML:
Ver original<form action="<%=request.getContextPath()%>/ServletSubir"
method="post" name="imagen" enctype="multipart/form-data">
<table cellpadding="3.0">
<td><input type="text" name="txtNombres"></td> <td><input type="text" name="txtApellidos"></td> <td><input type="text" name="txtDireccion"></td> <td><input type="text" name="txtTelefono"></td> <td><input type="reset" value="Limpiar" ></td> <td><input type="submit" value="Enviar Formulario"> </td>
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 originalpackage servlet;
import dean.*;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletSubir")
public class ServletSubir extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String imagen = request.getParameter("imagen");
String dni = request.getParameter("txtDni");
String nombres = request.getParameter("txtNombres");
String apellidos = request.getParameter("txtApellidos");
String direccion = request.getParameter("txtDireccion");
String telefono = request.getParameter("txtTelefono");
System.out.println("imagen ruta> " + imagen);
RequestDispatcher dispatcher = null;
Subir bean = new Subir();
bean.setDni(dni);
bean.setNombres(nombres);
bean.setApellidos(apellidos);
bean.setDireccion(direccion);
bean.setTelefono(telefono);
request.setAttribute("imagen", imagen);
request.setAttribute("dni", dni);
request.setAttribute("nombres", nombres);
request.setAttribute("apellidos", apellidos);
request.setAttribute("direccion", direccion);
request.setAttribute("telefono", telefono);
dispatcher = getServletContext().getRequestDispatcher("/mensaje.jsp");
dispatcher.forward(request, response);
}
}
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<html>
<head>
<title>Mensaje</title>
</head>
<body>
<table>
<tr>
<td>Imagen:</td>
<td><img src="<%=request.getAttribute("imagen")%>"/></td>
</tr>
<tr>
<td>DNI:</td>
<td><%=request.getAttribute("dni")%></td>
</tr>
<tr>
<td>Nombres:</td>
<td><%=request.getAttribute("nombres")%></td>
</tr>
<tr>
<td>Apellidos:</td>
<td><%=request.getAttribute("apellidos")%></td>
</tr>
<tr>
<td>Direccion:</td>
<td><%=request.getAttribute("direccion")%></td>
</tr>
<tr>
<td>Telefono:</td>
<td><%=request.getAttribute("telefono")%></td>
</tr>
</table>
</body>
</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