Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/07/2016, 08:56
jmg1189
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 3 meses
Puntos: 2
Problema con un servlet al cargar archivos al servidor

Buenos días a todos

Quisiera que por favor me colaboraran con el siguiente inconveniente. Tengo un formulario para cargar un archivo y ejecutarlo con un servlet, pero tengo un inconveniente. Debo pasar unas variables al servlet y pasa lo siguiente:

mi formulario es el siguiente:

Código HTML:
Ver original
  1. <form method="post" action="../subir_archivo" enctype="multipart/form-data">
  2.             <table class='tablas'>
  3.                 <tr><th class='titulo3'>Archivo:</th><td><input type="file" name='archivo'></td></tr>
  4.                 <tr><td colspan='2'><button>Subir archivo</button>
  5.                         <input type='hidden' name='item_reunion' id="item_reunion" value=''>
  6.                         <input type='hidden' name='item' id="item" value=''>
  7.                         <input type="text" name='prueba' value='juan'>
  8.                     </td>
  9.                 </tr>
  10.             </table>
  11.         </form>

muy sencillo, no tiene nada de raro porque aún estoy en pruebas, y mi servlet es el siguiente:

Código Java:
Ver original
  1. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.        
  4.         response.setContentType("text/html;charset=UTF-8");
  5.         PrintWriter out = response.getWriter();
  6.        
  7.         String item_reunion = request.getParameter("item_reunion");
  8.         String item_req = request.getParameter("item");
  9.         String prueba = request.getParameter("prueba");
  10.            
  11.        try {
  12.             String nombre_archivo = "";
  13.            
  14.             DiskFileItemFactory factory = new DiskFileItemFactory();
  15.            
  16.             factory.setSizeThreshold(4096);
  17.            
  18.             factory.setRepository(new File(rutaFichero));
  19.            
  20.             ServletFileUpload upload = new ServletFileUpload(factory);
  21.            
  22.             List items = upload.parseRequest(request);
  23.            
  24.             for (Object item1 : items) {
  25.                 FileItem item = (FileItem) item1;
  26.                 nombre_archivo = new File(item.getName()).getName();
  27.                 File file = new File(rutaFichero, nombre_archivo);
  28.                 item.write(file);
  29.             }
  30.            
  31.             out.println("<script>alert('se cargó el archivo "+nombre_archivo+".');</script>");
  32.         }
  33.         catch (Exception ex) {
  34.             out.println("<script>alert('Ocurrió "+item_reunion+" un error"+item_req+" y "+prueba+".');</script>");
  35.             Logger.getLogger(subir_archivo.class.getName()).log(Level.SEVERE, null, ex);
  36.            
  37.         }finally {
  38.             out.println("<script>document.location.href = 'webmaster/versolicitud.jsp?item="+item_req+"';</script>");
  39.             out.close();
  40.         }
  41.     }


El problema como tal es que el servletme carga el archivo en la carpeta que yo le indico, pero no me está capturando el valor de las variables que traigo del html, y sí le quito el
Código HTML:
Ver original
  1. enctype="multipart/form-data"
al formulario, pues obviamente no me va a cargar ningún archivo, pero en ese caso sí pasan las variables y me las imprime.

¿alguien podría indicarme cual puede ser el error, o en que estoy fallando?

Muchas gracias de ante mano a todos.