La carga de archivos es una tarea común en cualquier aplicación web. Hoy vamos a aprender acerca de la SPRING MVC File Upload, específicamente Spring MVC File Upload para uno o varios archivos.
Resultados:
upload.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ page session="false"%> <html> <head> <title>Subir Documento</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="col-md-6"> <form method="POST" action="file/uploadFile" enctype="multipart/form-data"> <div class="form-group"> <label class="control-label">Documento: </label> <input type="file" class="form-control" name="file"> </div> <div class="form-group"> <input type="submit" class="form-control btn btn-success" value="Subir"> </div> </form> </div> </div> </div> </body> </html>
uploadMultiple.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ page session="false"%> <html> <head> <title>Subir Documento</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="col-md-6"> <form method="POST" action="file/uploadMultipleFile" enctype="multipart/form-data"> <div class="form-group"> <label class="control-label">Documento1: </label> <input type="file" class="form-control" name="file"> </div> <div class="form-group"> <label class="control-label">Documento2: </label> <input type="file" class="form-control" name="file"> </div> <div class="form-group"> <input type="submit" class="form-control btn btn-success" value="Subir"> </div> </form> </div> </div> </div> </body> </html>
FileUploadController.java
package com.cloudsrcsoft.upload; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping(value="/file") public class FileUploadController { private static final Logger logger = LoggerFactory.getLogger(FileUploadController.class); //subir archivo @RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public @ResponseBody String uploadFile(@RequestParam("file") MultipartFile file) { if (!file.isEmpty()) { try { byte[] bytes = file.getBytes(); // Crear el directorio para almacenar el archivo String rootPath = System.getProperty("catalina.home"); File dir = new File(rootPath + File.separator + "tmpFiles"); if (!dir.exists()) dir.mkdirs(); // Crear documento en el servidor File serverFile = new File(dir.getAbsolutePath() + File.separator + file.getOriginalFilename()); BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile)); stream.write(bytes); stream.close(); logger.info("Ubicación de documento = " + serverFile.getAbsolutePath()); return "Documento subido correctamente = " + file.getOriginalFilename() + " Ubicacion del Archivo = " + serverFile.getAbsolutePath(); } catch (Exception e) { return "Ocurrio un error al subir documento" + file.getOriginalFilename() + " => " + e.getMessage(); } } else { return "Ocurrio un error al subir " + file.getOriginalFilename() + " documento vacio."; } } // subir multiples archivos @RequestMapping(value = "/uploadMultipleFile", method = RequestMethod.POST) public @ResponseBody String uploadMultipleFile(@RequestParam("file") MultipartFile[] files) { if (files.length != files.length) return "Falta información"; String message = ""; for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; String name = files[i].getOriginalFilename(); try { byte[] bytes = file.getBytes(); // Crear el directorio para almacenar el archivo String rootPath = System.getProperty("catalina.home"); File dir = new File(rootPath + File.separator + "tmpFiles"); if (!dir.exists()) dir.mkdirs(); // Crear documento en el servidor File serverFile = new File(dir.getAbsolutePath() + File.separator + name); BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile)); stream.write(bytes); stream.close(); logger.info("Ubicación de documento = " + serverFile.getAbsolutePath()); message = message + "<br> Documentos Subidos Correctamente = " + name + " Ubicacion del Archivo = " + serverFile.getAbsolutePath(); } catch (Exception e) { return "Ocurrio un error al subir " + name + " => " + e.getMessage(); } } return message; } }
Link: Spring MVC File Upload
0 comentarios:
Publicar un comentario