Foros del Web » Programación para mayores de 30 ;) » Java »

Formulario con enctype="multipart/form-data" validado en ajax

Estas en el tema de Formulario con enctype="multipart/form-data" validado en ajax en el foro de Java en Foros del Web. Holaa tengo un problema con un formulario con los datos de un cliente, donde ademas de sus datos personales, he agregado la opcion de subir ...
  #1 (permalink)  
Antiguo 11/02/2009, 19:04
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
Formulario con enctype="multipart/form-data" validado en ajax

Holaa tengo un problema con un formulario con los datos de un cliente, donde ademas de sus datos personales, he agregado la opcion de subir foto.

Todo esta bien, salvo que mi codigo ajax no me sirve para enviar al input type=file y sus valores, mi codigo ajax es el siguente:

function sendFormulario(){
xhr.open("POST",document.forms[0].action,true);
xhr.onreadystatechange=saveFormulario;
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var datos=obtenerDatos();
xhr.send(datos);
}

function obtenerDatos(){
var controles=document.forms[0].elements;
var datos=new Array();
var cad="";
for(var i=0;i<controles.length;i++){
cad=encodeURIComponent(controles[i].name)+"=";
cad+=encodeURIComponent(controles[i].value);
datos.push(cad);
}
cad=datos.join("&");
return cad;
}

function saveFormulario(){
if(xhr.readyState==4){
if(xhr.status==200){
var resultado=eval(xhr.responseText);
if(resultado){
alert("Docente registrado satisfactoriamente");
}else{
alert("El codigo del docente ingresado ya existe");
}
}
else
alert(xhr.statusText);
}
}


Aqui capturo los datos del formulario y sus valores, que es lo que falta ?? .. o que debo modificar para que llegue bien a mi servlet:

int bandera = 0;
String uploadfile = "C:/FotosSociales/";

if (MultipartFormDataRequest.isMultipartFormData(requ est)) {
try {
MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);
if (mrequest != null) {
Hashtable files = mrequest.getFiles();
if ((files != null) && (!files.isEmpty())) {
UploadFile file = (UploadFile) files.get("uploadfile");
if (file != null) {
//out.println("<li>Guardado en : Fotoosss" + "<BR> archivo subido: " + file.getFileName() + " (" + file.getFileSize() + " bytes)");
}
UploadBean upBean = new UploadBean();
upBean.setFolderstore("C:/FotosSociales");
upBean.store(mrequest, "uploadfile");
// Generando la cadena contenedora del path a guardar
uploadfile += file.getFileName();

} else {
uploadfile += "nulo";
}
}

} catch (UploadException e) {
e.printStackTrace();
}
}
String eti1 = request.getParameter("eti1");
String eti2 = request.getParameter("eti2");
String eti3 = request.getParameter("eti3");
String eti4 = request.getParameter("eti4");
String eti5 = request.getParameter("eti5");
int eti6 = Integer.parseInt(request.getParameter("eti6")); //id dependencia
int eti7 = Integer.parseInt(request.getParameter("eti7")); //id departamento
int eti8 = Integer.parseInt(request.getParameter("eti8"));
String eti9 = request.getParameter("eti9");
String eti10 = request.getParameter("eti10"); //condicion
String eti11 = request.getParameter("eti11"); //el elemento oculto
//añadidos recientemente
String ofia = request.getParameter("ofia"); //oficio entrada


/* Ingreso de foto del docente*/

if (MultipartFormDataRequest.isMultipartFormData(requ est)) {
try {
MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);
if (mrequest != null) {
Hashtable files = mrequest.getFiles();
if ((files != null) && (!files.isEmpty())) {
UploadFile file = (UploadFile) files.get("uploadfile");
if (file != null) {
//out.println("<li>Guardado en : Fotoosss" + "<BR> archivo subido: " + file.getFileName() + " (" + file.getFileSize() + " bytes)");
}
UploadBean upBean = new UploadBean();
upBean.setFolderstore("C:/FotosSociales");
upBean.store(mrequest, "uploadfile");
// Generando la cadena contenedora del path a guardar
uploadfile += file.getFileName();

} else {
uploadfile += "nulo";
}
}

} catch (UploadException e) {
e.printStackTrace();
}
}

/* Din de Ingreso de foto del docente*/

Docente docente = new Docente(eti1, eti2, eti3, eti4, eti5, eti6, eti7, eti8, eti9, eti10, eti11, ofia, uploadfile);
bandera = new DocenteDAO().setDocente(docente);

if (bandera == 1) {
out.println("true");
} else {
out.println("false");
}
out.close();

este es el jsp:

<form method="post" action="../../DocentesController?codOpe=1" enctype="multipart/form-data">
<fieldset>
<div id="registro">
<div id="datos">
<ul>
<li><label for="eti1">Codigo de Servidor</label></li><br/>
<li><input type="text" id="eti1" name="eti1" size="28" maxlength="10"></li>

<li><label for="eti5">Numero de DNI</label></li><br/>
<li><input type="text" id="eti5" name="eti5" size="28" maxlength="8"></li>

<li><label for="ofia">Numero de R.R.</label></li><br/>
<li><input type="text" id="ofia" name="ofia" size="28" maxlength="10"></li>
</ul>
</div>
<div id="foto">
<img id="fotito" src="imagenes/carlos.jpg" onclick="ventanaSecundaria2('loadImage.jsp')"/>
</div>
<br/><br/>
<ul>
<li><label for="eti2">Apellido Paterno</label>
<span><input type="text" id="eti2" name="eti2" size="28" maxlength="30"></span>
</li>

<li><label for="eti3">Apellido Materno</label>
<span><input type="text" id="eti3" name="eti3" size="28" maxlength="30"></span>
</li>

<li><label for="eti4">Nombres</label>
<span><input type="text" id="eti4" name="eti4" size="28" maxlength="30"></span>
</li>


<br/>
<li><hr/></li>
<br/>

<li><label for="eti8">Categoria</label>
<span>
<select id="eti8" name="eti8">
<option>-- Selecciones Categoria --</option>
<option value="1">Principal</option>
<option value="2">Asociado</option>
<option value="3">Auxiliar</option>
</select>
</span>
</li>

<li><label for="eti7">Clase</label>
<span>
<select id="eti7" name="eti7">
<option >-- Seleccione Clase --</option>
<option value="1">Tiempo Parcial</option>
<option value="2">Tiempo Completo</option>
<option value="3">Dedicacion Exclusivo</option>
</select>
</span>
</li>

<li><label for="eti9">Condicion</label>
<span>
<select id="eti9" name="eti9">
<option>-- Seleccione Condicion --</option>
<option value="nombrado">Nombrado</option>
<option value="contratado">Contratado</option>
</select>
</span>
</li>

<br/>
<li><hr/></li>
<br/>


<li><label for="eti6">Dependencia</label></li><br/>

<li><label for="eti11">Departamento</label></li><br/>
<li>
<span>
<select id="eti11" name="eti11">
<option>-- Seleccione un Departamento --</option>
</select>
</span>
</li>
<input type="hidden" id="eti10" name="eti10" value="1"> <!-- estado -->
<br/>
<li><hr align="left"/></li>
<br/><br/>

<input type="button" id="aceptar" name="aceptar" onclick="validar()" value="Aceptar" />
<input type="reset" id="limpiar" class="izquierda" name="limpiar" value="Limpiar" />

</ul>

</div>

</fieldset>
</form>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:08.