Tres formas de cargar archivos en SpringMVC, simplemente cargue el código, puede decir de un vistazo
recepción:
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! DocType html público "-// w3c // dtd html 4.01 transición // en" " "http://www.w3.org/tr/html4/loose.dtdendo Action = "/SpringMvc006/FileUpload" Method = "Post" enctype = "multipart/formy-data"> <h1> Archivos de carga utilizando la transmisión </h1> <input type = "file" name = "file"> <input type = "enviar" value = "cargar" // formy> <forma name = "form2" action = "/springmvc006/fileUplaad2" enctype = "multipart/form-data"> <h1> cargar archivos utilizando el método File.transfer proporcionado por multipart </h1> <input type = "file" name = "file"> <input type = "envíe" valor = "upload"/> </form> <form de formación = "form2" acción = "/springmvc006/springupload" método = "post" enctype = "multipart/form-data"> <h1> cargue el archivo usando el método proporcionado por Spring MVC </h1> <input type = "file" name = "file"> <input type = "envíe" value = "upload"/> </form> </body> </html>
Configuración:
<
Entre bastidores:
Método 1:
/** Cargue el archivo a través de stream* @RequestParam ("archivo") Encapsula el archivo obtenido por el control name = file en el archivo commonsMultipartFile*/@RequestMapping ("fileUpload") public String fileUpload (@RequestParam ("file") CommonsMultiMultfile Archives) lanza IOException {// usado para detectar el programa starttime = system.currentTimemillis (); System.out.println ("FileName:"+File.getOriginalFileName ()); Pruebe {// Obtenga el flujo de salida OutsutStream OS = nuevo FileOutputStream ("E:/"+New Date (). GetTime ()+File.GetOriginalFileName ()); // Obtenga el flujo de entrada CommonSMultIPartFile para obtener directamente la transmisión de la transmisión del archivo IS = file.getInputStream (); int temp; // leer y escribir bytes uno por uno a while ((temp = is.read ())! = (-1)) {OS.Write (temp); } os.flush (); os.close (); is.close (); } Catch (FileNotFoundException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); } Long EndTime = System.CurrentTimemillis (); System.out.println ("Tiempo de ejecución del método uno:"+string.valueOf (endtime-starttime)+"ms"); return "/Success"; }Método 2:
/** Use file.transto para guardar el archivo cargado*/ @RequestMapping ("fileUpload2") public String fileUpload2 (@RequestParam ("file") Archivo commonsMultipartFile) lanza ioexception {long starttime = system.CurrentTimillis (); System.out.println ("FileName:"+File.getOriginalFileName ()); String path = "e:/"+new Date (). GetTime ()+file.getoriginalFileName (); Archivo newfile = nuevo archivo (ruta); // Escriba el archivo directamente a través del método CommonSMultIPartFile (tenga en cuenta esta vez) File.Transferto (NewFile); Long Time = System.CurrentTimemillis (); System.out.println ("El tiempo de ejecución del método dos:"+string.valueOf (endtime-starttime)+"ms"); return "/Success"; }Método 3:
/**Utilice el método de cargar archivos proporcionados por Spring*/ @RequestMapping ("SpringUpload") String public SpringUpload (HttpServletRequest Soly) lanza ilegalstateException, ioexception {long starttime = system.currentTimemillis (); // Inicializa el contexto actual a CommonsMutipARTRESOLVER (PARSER multipart) CommonsMultipartResolver multipertResolver = new CommonsMultipARTResolver (request.getSession (). GetServletContext ()); // verifique si hay ciype = "multipart/form-data" en formifa if (multipResolver.Ismultipart (request)) {// Cambiar la solicitud en solicitud de multipart MultipThttPservletRequest múltiple Multirequest = (multipThttPservletRequest) solicitud; // Obtenga todos los nombres de archivos en MultIREQuest Iterator iterator = Multirequest.getFileNames (); while (iter.hasnext ()) {// transfuse todos los archivos a la vez multipartfile file = multirequest.getFile (iter.next (). toString ()); if (file! = null) {string path = "e:/springupload"+file.getoriginalFileName (); // cargar file.transferto (nuevo archivo (ruta)); }}} Long EndTime = System.CurrentTimemillis (); System.out.println ("El tiempo de ejecución del método tres:"+string.valueOf (endtime-starttime)+"ms"); return "/Success"; }Echemos un vistazo al tiempo de carga de la prueba:
La primera vez que usé un archivo de 4m:
nombre de archivo: test.rar
Método 1 Tiempo de ejecución: 14712ms
nombre de archivo: test.rar
Método 2 Tiempo de ejecución: 5ms
Método 3 Tiempo de ejecución: 4ms
La segunda vez: uso un archivo de 50 m
El progreso del método es muy lento y tomará 5 minutos.
Método 2 Tiempo de ejecución: 67ms
Método 3 Tiempo de ejecución: 80 ms
A partir de los resultados de la prueba, podemos ver que el método de cargar archivos utilizando SpringMVC es mucho más rápido.
Para el resultado de la Prueba 2: puede ser que el método tres deba buscar uno por uno, por lo que debe ser más lento. Pero en términos generales, tenemos el método 3 porque puede proporcionarnos más métodos
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.