Hola amigos, tengo un problema con una aplicacion web en la que tengo un formulario y en algunos casos llevara una imagen subida por el usuario el problema que tengo es que se me agotaron las ideas para recuperar los datos
los guardarlo en una DB, estaba probando con la libreria de Oreilly pero cuando utilizo la clase de MultipartRequest me guarda como deseo todo y recupero los datos facilmente el problema que tengo es que a la imagen que guarde no la puedo mandar a llamar ya que me sale como que no es un directorio valido
este es el formulario:
Código HTML:
Ver original <form method="POST" enctype="multipart/form-data" action="/AdminPortal/ConsultasMovil"> <td> Seleccione o ingrese la opción donde ingresara el proceso:
</td> <input type="radio" value="select" name="habilitaOpcion" id="habilitaOpcion" onchange="habilitarOpcion(this.value);" onclick="text.disabled=true" checked/>
<select name="opcion" id="opcion"> <%ResultSet rs = Selects.ProcesosConsulta();
while(rs.next())
{
if(rs.getString("opcion") != null || rs.getString("opcion") != "")
{
out.println("<option value=\""+rs.getString("opcion")+"\""+
">"+rs.getString("opcion")+"
</option>");
}
}
%>
<input type="radio" value="text" name="habilitaOpcion" id="habilitaOpcion" onchange="habilitarOpcion(this.value);" onclick="text.disabled=false"/>
<input type="text" name="text" placeholder="Ejem()" size="30" disabled/> <td> Seleccione o ingrese el nombre del proceso:
</td> <input type="radio" value="selectp" name="selectp" id="selectp" onclick="textp.disabled=true" onchange="habilitarProceso(this.value);" checked>
<select name="pselect" id="pselect"> <input type="radio" value="textp" name="selectp" id="selectp" onclick="textp.disabled=false" onchange="habilitarProceso(this.value);">
<input type="text" name="textp" id="textp" placeholder="Ingrese el nombre del proceso" size="30" disabled>
<td valign="top"> Ingrese el paso correspondiente del proceso:
</td> <select name="paso" id="paso"> <%String pasos = Selects.pasos();%>
<%out.println(pasos);%>
<textarea name="descpaso" placeholder="Ingrese el paso correspondiente del proceso" <td> Seleccione imagen para adjuntar en paso:
</td> <input type="checkbox" id="checkimg" onchange="checkImagen(this.checked);"> <input type="file" name="imgpaso" id="imgpaso" disabled="disabled"> Agregar
<input type="radio" value="agregar" name="AgregarModificar">
Modificar
<input type="radio" value="modificar" name="AgregarModificar"> <td> <input type="submit" name="enviar" value="Aceptar"> </td> <td> <a href="/AdminPortal/CargaMovil/ConsultaMovil.jsp"> refrescar
</a> </td>
esto lo recojo en un servlet estaba realizando pruebas con el MultipartParser:
Código Java:
Ver originaltry
{
MultipartParser mp = new MultipartParser(request, 5*1024*1024);
Part part;
String NombreProceso, paso, DescripcionPaso, imagen, destino, llamado, name, directorio, NombreImagen,
RadioOpcion, RadioProceso, opcion=null;
while((part = mp.readNextPart()) != null)
{
if(part.isParam())
{
name = part.getName();
if(name.equals("AgregarModificar"))
{
ParamPart pp = (ParamPart) part;
String AgregarModificar
= pp.
getStringValue(); //opcion
if(name.equals("habilitaOpcion"))
{
RadioOpcion = pp.getStringValue();
if (RadioOpcion.equals("opcion"))
{
if(name.equals("opcion"))
{
opcion = pp.getStringValue();
}
}
else
{
if(name.equals("text"))
{
opcion = pp.getStringValue();
}
}
}
//nombre del proceso
if(name.equals("selectp"))
{
RadioProceso = pp.getStringValue();
if(RadioProceso.equals("selectp"))
{
if(name.equals("pselect"))
{
NombreProceso = pp.getStringValue();
}
}
else
{
if(name.equals("textp"))
{
NombreProceso = pp.getStringValue();
}
}
}
//numero de paso
if(name.equals("paso"))
{
paso = pp.getStringValue();
}
//descripcion de paso
if(name.equals("descpaso"))
{
DescripcionPaso = pp.getStringValue();
}
}
}
else
{
if(part.isFile())
{
FilePart fp = (FilePart) part;
NombreImagen = fp.getFileName();
if(NombreImagen != null)
{
imagen = "S";
directorio = "C:/Program Files/apache-tomcat-7.0.54/webapps/ROOT/PortalSAC/"+item+"/"+
menu2+"/"+opcion;
destino = directorio+"/"+NombreImagen;
llamado = "../PortalSAC/"+item+"/"+menu2+"/"+opcion+"/"+NombreImagen;
fp.writeTo(dir);
}
else
{
NombreImagen = "N/A";
imagen = "N";
destino = "N/A";
llamado = "N/A";
}
}
}
}
}
soy muy nuevo con estos temas asi que les pido piedad, esto lo trabajo con java y tomcat por cierto.
saludos y gracias