O analisador padrão do SpringMVC não inclui o analisador para upload de arquivo. Ao usar o springmvc para fazer upload do arquivo, você precisa usar a declaração multipartresolver fornecida pelo Springmvc. Como o CommonsmultipartResolver implementa a interface multípartresolver, podemos configurá -lo no arquivo de configuração Springmvc da seguinte forma:
<bean id = "multipartresolver"> <propriedade name = "defaultEncoding" value = "utf-8" /> <names name = "maxuploadsize" value = "10485760000" /> <nome da propriedade = "maxinMemorysize" value = "40960" /> < /beins>
Primeiro, introduza os pacotes necessários para o upload de arquivos, commons-logging-*. Jar commons-io-*. Jar commons-fileupload-*. Jar
Crie uma nova página JSP.
<%@ página linguagem = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório //" <html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> upload </title> </head> <body> <%-<form Action = "user/fileUpload" = "pós" "formulhe =" multipart/formulhat/" Method = "Post" ENCTYPE = "Multipart/Form-Data"> <input type = "file" name = "fileUpload"/> <input type = "submit" value = "upload"/> </morm> </body> </html>
Existem muitas formas de arquivos de upload da Springmvc, aqui vou apresentar dois tipos.
O primeiro tipo , veja o controlador
pacote gd.hz.springmvc.controller; importar java.io.file; importar java.io.ioException; importar org.springframework.tereotype.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 ("Usuário") Public class UserController {// Processar arquivo de arquivo @RequestMapping (value = "fileUpload", método = requestMethod.Post) Public ModelAndView FileUpload (@RequestParam ("FileUpload") System.out.println (file.getContentType ()); // Obtenha o tamanho do arquivo System.out.println (file.getSize ()); // Obtenha o nome do arquivo System.out.println (FILE.GETORGINALFILENAME ()); // Verifique se (! File.isEmpty ()) {string path = "d:/" + file.getoriginalfilename (); Arquivo localfile = novo arquivo (caminho); tente {file.transferto (localFile); } catch (ilegalStateException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }} retornar novo ModelAndView ("DataSuccess"); }}A classe CommonsmultipartFile nos fornece muitos métodos para processamento de arquivos. Por exemplo, tamanho do arquivo, nome do arquivo, tipo de arquivo e uso específico, você pode visualizar o documento do Spring. TransferToDa o arquivo para um local especificado.
O segundo método de upload de arquivo, esse método é mais comumente usado:
pacote gd.hz.springmvc.controller; importar java.io.file; importar java.io.ioException; importar java.util.iterator; importar javax.servlet.http.httpServletRequest; importar org.springframework.tereotype.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 ("Usuário") Public class UserController {// Processar o upload do arquivo 2 @RequestMapping (Value = "FILEUPLOAD2", Método = requestmethod.post) public string fileUpload2 (hTPPREPRETEPTELECTM) Commonsmultipartresolver multipartresolver = new commonsmultipartresolver (request.getSession (). GetServletContext ()); // Verifique se o formulário possui ENCTYPE = "Multipart/form-Data" if (multipartresolver.ismultipart (request)) {multiparthttpServletRequest multirequest = (multiparthttpServletRequest); Iterator <string> iter = multirequest.getFileNames (); while (iter.hasnext ()) {// herdado do CommonsMultipartFile, possui o método acima. Arquivo multipartfile = multirequest.getFile (iter.Next ()); if (arquivo! String Path = "D:/" + nome do arquivo; Arquivo localfile = novo arquivo (caminho); file.Transferto (LocalFile); }} retornar "DataSuccess"; }}O multiparthttpServletRequest fornece um método mais flexível, que pode obter vários arquivos e nomes de arquivos, e pode atravessar para obter cada arquivo.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.