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