Originalmente quería usar AJAX para cargar archivos sin actualizar, pero luego descubrí que no era fácil de implementar. Después de buscar en línea durante mucho tiempo, finalmente encontré una implementación "pseudo-AJAX". Ahora publicaré mi código real. lectores.
Primero necesitamos un archivo HTML o JSP cargado, de la siguiente manera:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" >
<tipo de entrada="archivo" nombre="sfile" estilo="ancho:450">
<tipo de entrada="oculto" nombre="acto" valor="cargar">
<INPUT tipo="enviar" valor="Subir archivo"><span id="msg"></span>
<br>
<font color="red">Admite la carga de archivos JPG, JPEG, GIF, BMP, SWF, RMVB, RM, AVI</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</formulario>
Entre ellos, el atributo TARGET de FORM [b] es muy importante [/ b]. Envíe la ACCIÓN de FORM a un IFRAME oculto para su ejecución y luego complete la operación en el MSG al regresar. El código similar de SERVLET es el mismo. sigue:
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza IOException, ServletException {
PrintWriter fuera = respuesta.getWriter();
respuesta.setCharacterEncoding("utf-8");
respuesta.setHeader("Conjunto de caracteres","utf-8");
respuesta.setHeader("Cache-Control", "no-cache");
String filepath="",msg="",ext="";
SmartUpload su = nuevo SmartUpload();
éxito booleano = verdadero;
. . . . . .
intentar{
su.initialize(getServletConfig(),solicitud,respuesta);
su.setMaxFileSize(102400000);
su.setTotalMaxFileSize(102400000);
su.setAllowedFilesList(mediaExt+","+flashExt+","+imgExt);
su.setDeniedFilesList("exe,bat,,,");
su.subir();
para (int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File archivo = su.getFiles().getFile(i);
si (file.isMissing()) continúa;
String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());
ext=archivo.getFileExt().toLowerCase();
. . . . . . . . . . .
msg="<a href="#">¡Subida exitosa!</a>";
}
}catch(demanda SmartUploadException){
éxito = falso;
msg="<font color=red>Error en la carga: ¡compruebe la extensión o el tamaño del archivo!</font>";
}catch(Excepción ex){
éxito = falso;
msg="<font color=red>Error en la carga: ¡compruebe la extensión o el tamaño del archivo!</font>";
ex.printStackTrace();
}
msg=Escape.escape(msg);
si (éxito)
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');parent.backCallIframe('"+Escape.escape(ext)+"','"+Escape. escape(rutadelarchivo)+"')");
demás
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');");
fuera.cerrar();
}