L'analyseur par défaut de Springmvc n'inclut pas l'analyseur pour le téléchargement de fichiers. Lorsque vous utilisez SpringMVC pour télécharger le fichier, vous devez utiliser la déclaration MultipartResolver fournie par SpringMVC. Étant donné que CommonsMultipartreSolver implémente l'interface multipartresolver, nous pouvons le configurer dans le fichier de configuration de SpringMvc comme suit:
<bean id = "multipartreSolver"> <propriété name = "defayencoding" value = "utf-8" /> <propriété name = "maxuploadSize" value = "10485760000" /> <propriété name = "maxinMemorySize" value = "40960" /> </ean>
Tout d'abord, introduisez les packages requis pour le téléchargement de fichiers, Commons-Logging - *. Jar Commons-io - *. Jar Commons-fileupload - *. Jar
Créez une nouvelle page JSP.
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! DocType HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // En" "http://www.w3.org/tr/html4/loose" <Html> <A-head> <meta http-equiv = "contenu-type" contenu = "text / html; charset = utf-8"> <itle> file upload </ title> </ head> <body> <% - <form action = "user / userupload" methethy = "post" enctype = "multipart / form-data"> - -%> ENCTYPE = "Multipart / Form-Data"> <Input Type = "File" name = "FileUpload" /> <Input Type = "Soumide" Value = "Upload" /> </form> </body> </html>
Il existe de nombreuses formes de fichiers de téléchargement de SpringMVC, ici je présenterai deux types.
Le premier type , regardez le contrôleur
package gd.hz.springmvc.Controller; Importer java.io.file; Importer java.io.ioException; import org.springframework.sterreotype.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.multipartipart.commons.commonsMultiPartfile; import org.springframework.web.servlet.modelandView; @Controller ("userController") @RequestMapping ("utilisateur") classe publique UserController {// Process File upload @RequestMapping (value = "fileupload", méthode = requestMethod.Post) public modelView fileupload (@RequestParam ("fileupload") CommonsMultFile file) {// Get File Type de file System.out.println (file.getContentType ()); // obtient le fichier size system.out.println (file.getSize ()); // Obtenez le nom de fichier System.out.println (file.getoriginalFileName ()); // Vérifiez si (! File.isempty ()) {String path = "d: /" + file.getoriginalFileName (); Fichier localfile = nouveau fichier (chemin); essayez {file.transferto (localfile); } catch (illégalStateException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); }} return new ModelAndView ("dataSuccess"); }}La classe CommonsMultupartFile nous fournit de nombreuses méthodes de traitement des fichiers. Par exemple, la taille du fichier, le nom de fichier, le type de fichier et l'utilisation spécifique, vous pouvez afficher le document de Spring. TransferTt sort le fichier à un endroit spécifié.
La deuxième méthode de téléchargement de fichiers, cette méthode est plus couramment utilisée:
package gd.hz.springmvc.Controller; Importer java.io.file; Importer java.io.ioException; Importer java.util.iterator; Importer javax.servlet.http.httpservletRequest; import org.springframework.sterreotype.Controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.multupar.MultiPartFile; import org.springframework.web.multupar.MultiparthTTPServletRequest; import org.springframework.web.multupar.commons.commonsMultipartreSolver; @Controller ("userController") @RequestMapping ("utilisateur") classe publique UserController {// Process File upload 2 @RequestMapping (value = "fileupload2", méthode = requestMethod.Post) public string fileupload2 (httSservleRequest request) lance la trace de la taille de l'illégalstateException, ioException {// définit la taille supérieure et le Text à basse CommonsMultipArtresolver MultipartResolver = new CommonsMultipArtResolver (request.getSession (). GetServletContext ()); // Vérifiez si le formulaire a encType = "multipart / form-data" if (multipartresolver.ismultuplart (request)) {multipartHTTPServLetRequest MultiRequest = (multipartHTTTPerSertRequest) request; Iterator <string> iter = multirequest.getFileNames (); while (iter.hasnext ()) {// hérité de CommonsMultupartile, possède la méthode ci-dessus. Fichier multipartFile = MultiRequest.getFile (iter.next ()); if (file! = null) {String filename = "Demouplload" + file.getoriginalFileName (); String path = "d: /" + filename; Fichier localfile = nouveau fichier (chemin); file.transferto (localfile); }} return "dataSuccess"; }}MultipartHTTPServLetRequest fournit une méthode plus flexible, qui peut obtenir plusieurs fichiers et noms de fichiers, et peut traverser pour obtenir chaque fichier.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.