El analizador predeterminado de SpringMVC no incluye el analizador para la carga de archivos. Cuando use SpringMVC para cargar el archivo, debe usar la declaración de MultiprArtResolver proporcionada por SpringMVC. Debido a que CommonSMultipartResolver implementa la interfaz MultipRartesolver, podemos configurarla en el archivo de configuración de SpringMVC de la siguiente manera:
<bean id = "multipartresolver"> <propiedad name = "defaultEncoding" value = "utf-8" /> <propiedad name = "maxUploadSize" valor = "10485760000" /> <Property name = "maxInMemorySize" Value = "40960" /> < /bean>
Primero, introduzca los paquetes requeridos para la carga de archivos, logging commons-*. Jar Commons-Io-*. Jar Commons-FileUpload-*. JAR
Crea una nueva página JSP.
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "utf-8"%> <! DocType html public "-// w3c // dtd html 4.01 transición // en" "http://www.w3.org/tr/html4/loos.dttd <html> <fead> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> file upload </title> </head> <body> <%-<forma action = "user/fileUpload" Method = "Post" enctype = "multipart/formart-data">-%> <pla de formul método = "post" enctype = "multipart/form-data"> <input type = "file" name = "fileUpload"/> <input type = "subt" value = "upload"/> </form> </body> </html>
Hay muchas formas de archivos de carga SpringMVC, aquí presentaré dos tipos.
El primer tipo , mire el controlador
paquete gd.hz.springmvc.controller; import java.io.file; import java.io.ioException; importar org.springframework.stereotype.controller; importar org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.requestmethod; importar org.springframework.web.bind.annotation.requestparam; importar org.springframework.web.multipart.commons.commonsmultipartfile; importar org.springframework.web.servlet.modelandview; @Controller ("UserController") @RequestMapping ("User") clase pública UserController {// Process File @RequestMapping (value = "fileupload", método = requestMethod.post) public ModelandView fileUpload (@ReRequestparam ("fileUpload) System.out.println (file.getContentType ()); // Obtener tamaño de archivo System.out.println (file.getSize ()); // Obtener nombre de archivo System.out.println (file.getoriginalFileName ()); // Compruebe si (! File.isEmpty ()) {String path = "d:/" + file.getoriginalFileName (); Archivo localfile = nuevo archivo (ruta); intente {file.transferto (localfile); } catch (ilegalStateException e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); }} return New ModelAndView ("DataSuccess"); }}La clase CommonsMultipartFile nos proporciona muchos métodos para procesar archivos. Por ejemplo, tamaño de archivo, nombre de archivo, tipo de archivo y uso específico, puede ver el documento de Spring. Transferir emite el archivo a un lugar especificado.
El segundo método de carga de archivos, este método se usa más comúnmente:
paquete gd.hz.springmvc.controller; import java.io.file; import java.io.ioException; import java.util.iterator; import javax.servlet.http.httpservletRequest; importar org.springframework.stereotype.controller; importar org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.requestmethod; importar org.springframework.web.multipart.multipartfile; importar org.springframework.web.multipart.multiparthttpservletRequest; importar org.springframework.web.multipart.commons.commonsmultipartresolver; @Controller("userController") @RequestMapping("user") public class UserController { // Process file upload 2 @RequestMapping(value = "fileUpload2", method = RequestMethod.POST) public String fileUpload2(HttpServletRequest request) throws IllegalStateException, IOException { // Set the upper and lower text CommonSMultIPartresolver MultipResolver = new CommonSMultIPartresolver (request.getSession (). GetServletContext ()); // verifique si el formulario tiene enctype = "multipart/form-data" if (multipResolver.Ismultipart (request)) {multipThttpServletRequest multirequest = (multipthttpservletRequest) request; Iterator <String> iter = multirequest.getFileNames (); while (iter.hasnext ()) {// heredado de commonsmultipartfile, posee el método anterior. Archivo multipartFile = multirequest.getFile (iter.next ()); if (file! = null) {string filename = "DemoUpload" + file.getoriginalFileName (); Ruta de cadena = "d:/" + nombre de archivo; Archivo localfile = nuevo archivo (ruta); file.transferto (localfile); }} return "DataSuccess"; }}MultipThttPservletRequest proporciona un método más flexible, que puede obtener múltiples archivos y nombres de archivos, y puede atravesar para obtener cada archivo.
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.