Envío de fichero simulando ajax
Publicado por Sepharat (13 intervenciones) el 27/10/2010 12:25:43
Hola, estoy intentando hacer una ventana en mi aplicación JEE en la que se desea adjuntar un fichero a un email. Me gustaría poner un campo tipo 'file' con un botón de aceptar al lado para ejecutar un servlet que almacene el fichero en el servidor mientras el usuario permanece en la misma página. He conseguido que funcione usando un iframe como target del formulario. El problema que tengo es que me gustaría que la respuesta del servlet devolviera un código que ocultase el gif de progreso que he puesto en la página y que se ejecuta en cuanto se pulsa el botón de aceptar. El código es éste:
<div id="divFichero">
<form enctype="multipart/form-data" method="post" action="/AdjuntarFichero" target="prueba" onsubmit="ocultarForm();">
<input type='file' name="fichero" id="fichero" value="Examinar"/>
<input type='submit' value="Aceptar" />
</form>
</div>
<div id="loading" style="visibility:hidden;">
<img src="/images/loader.gif" id="imagen"/>
Cargando...
</div>
<iframe id="prueba" name="prueba" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
function ocultarForm(){
document.getElementById("divFichero").style.visibility = "hidden";
document.getElementById('loading').style.visibility = 'visible';
}
Lo máximo que consigo es ejecutar javascript en la vuelta con el PrintWriter del response pero no tengo acceso a los elementos de la página actual en la que me encuentro.
PrintWriter writer = response.getWriter();
writer.println("<script language='javascript' type='text/javascript'>document.getElementById('loading').style.visibility='hidden';</script> ");
writer.flush();
writer.close()
El ejemplo que he seguido lo he sacado por internet pero en él utilizan php en lugar de java por lo que no sé cómo adaptarlo
¿Alguien sabe como lo puedo hacer?
Gracias
<div id="divFichero">
<form enctype="multipart/form-data" method="post" action="/AdjuntarFichero" target="prueba" onsubmit="ocultarForm();">
<input type='file' name="fichero" id="fichero" value="Examinar"/>
<input type='submit' value="Aceptar" />
</form>
</div>
<div id="loading" style="visibility:hidden;">
<img src="/images/loader.gif" id="imagen"/>
Cargando...
</div>
<iframe id="prueba" name="prueba" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
function ocultarForm(){
document.getElementById("divFichero").style.visibility = "hidden";
document.getElementById('loading').style.visibility = 'visible';
}
Lo máximo que consigo es ejecutar javascript en la vuelta con el PrintWriter del response pero no tengo acceso a los elementos de la página actual en la que me encuentro.
PrintWriter writer = response.getWriter();
writer.println("<script language='javascript' type='text/javascript'>document.getElementById('loading').style.visibility='hidden';</script> ");
writer.flush();
writer.close()
El ejemplo que he seguido lo he sacado por internet pero en él utilizan php en lugar de java por lo que no sé cómo adaptarlo
¿Alguien sabe como lo puedo hacer?
Gracias
Valora esta pregunta


0