21 de septiembre de 2013

Subir Archivos con FileUpload

Subir un archivo al servidor puede ser algo complicado utilizando la librería fileupload nos ahorraremos mucho trabajo.
requisitos:
  • Descargar la libreria Jakarta Commons FileUpload 1.2.1: commons-fileupload-1.2.1.jar
  • Ademas de esta libreria necesitaremos otra de complemento interno de Commons FileUpload llamada Jakarta Commons IO librarie: commons-io-1.4.jar
Una vez descargados las librerías  vamos a crear un proyecto web en netbeans, despues agregaremos  al proyecto que hayamos creado las librerías que descargamos anteriormente,  y en el jsp index.jsp ponemos el siguiente código:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>subir archivo con file upload!</h1>
        <form method="POST" enctype="multipart/form-data" action="${pageContext.request.contextPath}/ejercicioController?method=0">
            <br>
            <input type="file" name="archivo"/>
            <input type="submit" name="guardar" id="guardar" value="guardar"/>
        </form>
    </body>
</html>

    El siguiente paso es crear un servlet  al que llamaremos ejercicioController. En el cual Se debe de agregar el siguiente codigo:
        public static final int guardar = 0;

          protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              response.setContentType("text/html;charset=UTF-8");
              PrintWriter out = response.getWriter();
              int method = Integer.parseInt(request.getParameter("method"));
              try {
                  switch (method) {
                      case guardar:
                         getArchivo(request);
                          break;
                  }
              } finally {
                  out.close();
              }
          }
          private void getArchivo(HttpServletRequest request) {
              FileItemFactory factory = new DiskFileItemFactory();
              ServletFileUpload upload = new ServletFileUpload(factory);
              String direccion = null;
              try {

                  List items = upload.parseRequest(request);//Se obtiene la lista de los elementos del formulario
                  for (Object item : items) {
                      FileItem uploaded = (FileItem) item;
                      if (!uploaded.isFormField()) {//Se verifica que el elemento de la lista no sea un campo del formulario
                          File archivo = new File(getServletContext().getRealPath("/archivos"), uploaded.getName());    //Se crea Una intancia file para subir el archivo            
                          uploaded.write(archivo);//Se escribe el archivo
                      }
                  }
              } catch (Exception ex) {
               System.out.println(ex.getCause());
              }

          }



No hay comentarios:

Publicar un comentario

Gracias por opinar en el Blog, si tienes dudas o sugerencias mándanos un mail a: jsmaster.in@gmail.com


De antemano, Gracias.

El equipo del Portal de Noticias del Tecnologico de Oaxaca