Regardez simplement le code, les commentaires sont tous à l'intérieur
Tout d'abord, web.xml
<? xml version = "1.0" encoding = "utf-8"?> <web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema instance" XSI: ScheMalation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <frlet> <description> Configurer le contrôleur frontal de Springmvc </cription> <frlet-name> UpLepleler> SERVLED> <Servlet-Class> org.springframework.web.servlet.dispatcherServlet </vrlett-Class> <Init-Param> <Am param-Name> ContextConfiglocation </ Param-Name> <Am param-Value> CLASSPATH: ApplicationContext.xml </ FORK-ON-STARTUP> </IniT-Param> <Offory-on-Starpup> <servlet-mapping> <servlet-name> upload </ servlet-name> <url-potern> / </url-potern> </ servlet-mapping> <filter> <escription> résoudre des problèmes brouillés dans la livraison des paramètres </, description> <filter-name> CaracterEncodingUtf8 </filter-name> <Filter-Class> org.springframework.web.filter.characterencodingFilter </filter-Class> <Init-Param> <Amam-Name> Encoding </ param-name> <param-value> utf-8 </ param-value> </1nit-param> </dilter-thelter> <maping-mapping> <url-sattern> / * </ url-stern> </filter-mapping> </ web -pp>
Ci-dessous est situé sur //src//applicationcontext.xml
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalation = "http://www.springframework.org/schea/bans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.xsdd http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <! - Démarrer le mécanisme de balayage de la base de la base de la base (Spring sera automatique -> <! - Ici, vous pouvez vous référer à mon article http://blog.csdn.net/jadyer/article/details/6038604 -> <context: composant-scan basage = "com.jadyer" /> <! - Démarrer la fonction d'annotation SpringMVC, et il y aura automatique <MVC: annotation-Driven /> <! - Étant donné que SpringMvc est défini dans web.xml pour intercepter toutes les demandes, il ne sera pas lu lors de la lecture de fichiers de ressources statiques -> <! - Grâce à cette configuration, vous pouvez spécifier toutes les ressources qui demandent ou référence "/ js / **" et se trouvent à partir de "/ js /" -> <mvc: les ressources mapping = "/ js / **" " <mvc: Ressources mapping = "/ upload / **" location = "/ upload /" /> <! - Lorsque vous téléchargez des fichiers par SpringMvc, vous devez configurer le processeur multipartResolver-> <bean id = "multipartResolver"> <! - Spécifiez que la taille totale des fichiers uploded ne peut pas dépasser 800KB ... de la capacité de tous les fichiers -> <propriété name = "maxuploadsize" value = "800000" /> </ank> <! - Lorsque Springmvc dépasse la limite de fichier de téléchargement, il lancera org.springframework.web.multipartill.maxuploadSizeExceedEdException -> <! Cette fois -> <bean id = "exceptionResolver"> <propriété name = "exceptionmappings"> <popps> <! - Lorsque vous rencontrez une exception maxuploadSizeExededException, il sautera automatiquement à /web-inf/jsp/error_fileupload.jsp -> <propul key = "org.springframework.web.multupart.maxuploadSizeExeEDEDException"> error_fileupload </prop> </ props> </ propriété> </ bean> <anan> <propriété name = "Prefix" value = "/ web-inf / jsp /" /> <propriété name = "Suffix" value = ".
Ce qui suit est la page d'invite lors du téléchargement du contenu du fichier est trop grand //web-inf//jsp//error_fileupload.jsp
<% @ page langage = "java" pageencoding = "utf-8"%>
<h1> Le fichier est trop grand, veuillez résister </h1>
Vous trouverez ci-dessous la page de téléchargement pour sélectionner les fichiers index.jsp
<% @ Page Language = "Java" Pageencoding = "UTF-8"%> <! - Cela ne peut pas être abrégé comme <Script Type = "Text / JavaScript" Src = ".." // JS / JQuery-1.10.2.Min.js "> </ Script> <Script Type =" Text / Javascript " src = "<% = request.getContextPath ()%> / js / ajaxfileupload.js"> </ script> <script type = "text / javascript" src = "<% = request.getContextPath ()%> / js / ajaxfileupload.js"> </ script> <script = " L'image s'affiche lors du téléchargement d'un fichier, et le téléchargement de fichiers est terminé pour masquer l'image // $ ("# chargement"). ajaxStart (function () {$ (this) .show ();}). ajaxComplete (function () {$ (this) .hide ();}); être passé, et il a été testé personnellement) URL: '$ {pagecontext.request.contextpath} / test / fileupload? Uname = xuanyu', sécurise: false, // Secure Commit est activé, la valeur par défaut est False FileelementId: 'MyBlogImage', // le DataType d'ID: 'text', // Le format a été renvoyé par le serveur CAN CAN CAN BE, etc. Succès: fonction (data, status) {// la fonction de traitement data = data.replace ("<pre>", ''); // ajaxfileupload ajoutera le suffixe de <pre> texte </pre> au contenu texte auquel le serveur répond. data = data.replace ("</pre>", ''); data = data.replace ("<pre>", ''); data = data.replace ("</pre>", ''); data = data.replace ("</pre>", ''); // Dans cet exemple, une fois le fichier de téléchargement terminé, le serveur reviendra au premier plan [0`FilePath] if (data.subString (0, 1) == 0) {// 0 signifie télécharger avec succès (superhes le chemin du fichier après téléchargement), 1 signifie défaillance (superhes la description de l'échec) $ ("id id = 'uploadMage']"). data.substring (2)); $ ('# Result'). HTML ("Image Téléchargez avec succès <br/>"); } else {$ ('# result'). html ('le téléchargement d'image a échoué, veuillez réessayer!!'); }}, erreur: fonction (données, statut, e) {// la fonction de traitement $ ('# result'). html ('le téléchargement d'image a échoué, veuillez réessayer !!'); }});} </ script> <div id = "result"> </ div> <img id = "uploadimage" src = "http://www.firefox.com.cn/favicon.ico"> <entrée = "file" id = "myblogimage" name = "myfiles" /> <entrée type = "Button" Button = "upload = upload" Name = "MyFiles" /> <Entrée = "Button" Button "Value = upload" onclick = "ajaxfileupload ()" /> <! - Introduction à ajaxfileupload Site Web officiel: http://phpletter.com/our-projects/ajaxfileupload/introduction: le plug-in jQuery ajaxfileupload peut réaliser des fichiers de téléchargement sans refoulement, et est simple à utiliser. Il a beaucoup d'utilisateurs. Il vaut la peine de recommander: l'ordre d'introduction de JS (cela dépend de jQuery) et il n'y a pas de formulaires dans la page (il ne déclenche que la méthode AJAXFileUpload () lorsque le bouton est cliqué) Les erreurs et les solutions courantes sont les suivantes 1) Syntaxerror: manquant; Avant l'instruction - Vérifiez si le chemin d'URL peut être accessible 2) Syntaxerror: Erreur de syntaxe - Vérifiez si le fichier JSP qui gère l'opération de soumission a une erreur de syntaxe 3) Syntaxerror: ID de propriété non valide - Vérifiez si l'ID de propriété existe 4) Syntaxerror: manquant} dans XML Expression - Vérice Erreur variable $, qui est beaucoup plus pratique que les invites d'erreur non valides ci-dessus ->> Enfin, fileuploadController.java qui gère le téléchargement de fichiers
package com.jadyer.controller; import java.io.file; import java.io.ioexception; import java.io.printwriter; import javax.servlet.http.httpservletRequest; importation javax.servlet.http.fileUiLsponse; import org.apache.commons.io.fileuLs; org.springframework.sterreotype.Controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestParam; import org.springframework.web.MultArt.Multupartile; Springmvc utilise l'implémentation Commons-FileUpload, il doit d'abord introduire ses composants dans le projet * 2) Configurer le processeur MultipartreSolver dans le fichier de configuration SpringMVC (les restrictions d'attributs sur la méthode du contrôleur (ce paramètre est utilisé pour recevoir le contenu du composant de fichiers dans le formulaire) * 4) ENCTYPE = "multipart / form-data" et <entrée type = "file" name = "****" />) * ps: Puisque ajaxfileupload.js est utilisé ici pour obtenir un téléchargement sans rafraîchissement, le formulaire n'est pas utilisé dans cet exemple * ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Spring-Context-3.2.4.Release.jar * Spring-Core-3.2.4.Release.jar * Spring-Expression-3.2.4.4release.jar * Spring-JDBC-3.2.4.Rex-3.2.4.4.4.4 printemps-web-3.2.4.release.jar * Spring-web-3.2.4.release.jar * Spring-webmvc-3.2.4.release.jar * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Après avoir téléchargé le fichier, revenez au premier plan [0`FilePath], 0 signifie télécharger avec succès (séquentiment sur le chemin du fichier téléchargé), 1 signifie échec (séquentiment à la description de l'échec) * / @RequestMapping (value = "/ fileupload") public String AddUser (@RequestParam ("unaE" String Uname, @requestParam multipartFile [] MyFiles, httSeDe, @requestParam Multial request, réponse httpservletResponse) lève ioException {// Vous pouvez recevoir d'autres paramètres lors du téléchargement du fichier System.out.println ("" Reçu l'utilisateur ["+ uname +"] Request de téléchargement de fichiers "); // Si vous utilisez le serveur Tomcat, le fichier sera téléchargé sur //% tomcat_home% // webapps // yourwebproject // upload // dossier // La classe commons.io.fileutils est utilisée pour implémenter les opérations de téléchargement de fichiers ici. Il déterminera automatiquement si / le téléchargement existe. S'il n'existe pas, il créera automatiquement String realPath = request.getSession (). GetServletContext (). GetRealPath ("/ upload"); // Définissez la réponse du format de données à la réponse du contenu de premier plan.setContentType ("Text / PLAIN; charset = utf-8"); // Définissez l'objet PrintWriter qui répond au contenu de premier plan PrintWriter out = réponse.getWriter (); // Le nom d'origine du fichier de téléchargement (c'est-à-dire le nom du fichier avant le téléchargement) String originalFileName = null; // Si vous venez de télécharger un fichier, il vous suffit de recevoir le fichier en type multipartfile, et il n'est pas nécessaire de spécifier explicitement le type de fichier @RequestParam pour recevoir le fichier et spécifier le formulaire @RequestParam annotation // MyFiles, sinon les MyFiles dans le paramètre ne peuvent pas obtenir tous les fichiers téléchargés pour (multipartFile MyFile: myFiles) {if (myFile.iSempty ()) {out.print ("1`Pease sélectionnez le fichier et téléchargez-le"); out.flush (); retourner null; } else {originalFileName = myFile.getoriginalFileName (); System.out.println ("Fichier Nom d'origine:" + OriginalFileName); System.out.println ("Nom de fichier:" + myFile.getName ()); System.out.println ("Longueur de fichier:" + myFile.getSize ()); System.out.println ("Type de fichier:" + myFile.getContentType ()); System.out.println("======================================================================================================== System.out.println("================================================================================== ======================================================================================================. ======================================================================================================. ==========================================================================================================. {System.out.println ("File [+ OriginalFilename +" [D: /devevelop/apache-tomcat-6.0.36/webapps/ajaxfileupload//upload/anger birds.jpg] //system.out.println(realpath + "//" + originalfilename); //System.out.println (request.getContextPath () + "/ upload /" + originalFileName); // La recommandation de [realPath + "//" + originalFileName] n'est pas recommandée // parce que <img src = "file: //// d: /aa.jpg"> peut être affiché par Firefox sous Windows, et <img src = "d: /aa.jpg"> Firefox est non reconnue / upprint ("0`" + request.get + originalFileName); out.flush (); retourner null; }}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.