Cet exemple partage le code spécifique de SpringMVC à l'aide de MultipartFile pour implémenter le téléchargement de fichiers pour votre référence. Le contenu spécifique est le suivant
1. Fichier de configuration
SpringMVC utilise MultipartFile pour télécharger des fichiers, nous devons donc d'abord configurer MultipartreSolver: pour le traitement du fichier sous forme
<! - Configurez le multipartrersolver commosmultipartreSolver pour le téléchargement de fichiers à l'aide de Spring -> <Beans: Bean Id = "MultipartResolver" P: DeftherNcoding = "UTF-8" P: MaxupLoadSize = "5400000" p: uploadTempdir = "fileupload / temp"> </ Beans: Bean>
Les attributs sont expliqués en détail:
DefayinCcoding = "UTF-8" est le format de codage demandé, par défaut ISO-8859-1
MaxuploadSize = "5400000" est la taille du fichier téléchargé, en octets
uploadTempdir = "fileupload / temp" est le chemin temporaire pour télécharger le fichier
2. Créez un formulaire de téléchargement simple
<body> <h2> Instance de téléchargement de fichiers </h2> <formulaire forme = "fileupload.html" Method = "post" ENCTYPE = "multipart / form-data"> SELECT FILE: <input type = "file" name = "file"> <input type = "soumed" value = "soumed"> </ form> </body>
Notez que vous devez ajouter ENCTYPE = "Multipart / Form-Data" à la balise de formulaire pour indiquer que le formulaire doit traiter le fichier. C'est la chose la plus fondamentale. Beaucoup de gens oublieront l'erreur de recherche du programme après une erreur de téléchargement, mais oublient ce point.
3. Classe de contrôle de téléchargement d'écriture
1. Créez une classe de contrôle: fileUploadController et une page qui renvoie la liste de résultats.jsp
2. Écrivez l'action pour soumettre le formulaire
// Obtenez la demande de la configuration par défaut de Spring via la requête HTTPServletRequest privée Autowired de Spring @Autowired. / *** * Téléchargez le fichier avec l'annotation @RequestParam pour spécifier que le fichier sur le formulaire est multipartFile * * @param file * @return * / @requestmapping ("fileupload") public String Fileupload (@requestParam ("file") Fichier multipartFile) {// Déterminer si le fichier est vide (! File.isempty ()) = request.getSession (). getServletContext (). getRealPath ("/") + "upload /" + file.getoriginalFileName (); // transferto (nouveau fichier (filepath)); } catch (exception e) {e.printStackTrace (); }} // rediriger le retour "redirect: /list.html"; } / *** * Lisez tous les fichiers dans le fichier téléchargé et renvoyez * * @return * / @requestmapping ("list") public ModelandView list () {String filePath = request.getSession (). GetServletContext (). GetRealPath ("/") + "upload /"; ModelAndView mav = new ModelAndView ("list"); File uploadDest = nouveau fichier (filepath); String [] fileNames = uploadDest.List (); pour (int i = 0; i <filenames.length; i ++) {// imprimez le nom de fichier System.out.println (fileNames [i]); } return mav; } 3. Utilisez Springmvc Annotation RequestParam pour spécifier les paramètres de fichier dans le formulaire;
4. Spécifiez un chemin Web Web pour enregistrer des fichiers
5. Méthode de transfertto (fichier dest) de multipartfile vers le chemin spécifié.
À ce stade, le téléchargement de fichiers de base est terminé.
Quelques méthodes couramment utilisées de la classe multipartfile:
String getContentType () // Obtenez le type de mime de fichier
InputStream getInputStream () // puis accéder au streaming de fichiers
String getName () // Obtenez le nom du composant de fichier dans le formulaire
String GetoriginalFileName () // Obtenez le nom d'origine du fichier téléchargé
long getSize () // Obtenez la taille de l'octet du fichier, octet d'unité
booléen iSempty () // est-il vide
void transferto (fichier dest) // Enregistrer dans un fichier cible.
4. Téléchargement de fichiers multiples
Le téléchargement de plusieurs fichiers est en fait très simple. Tout comme le téléchargement d'autres mêmes paramètres, tels que CheckBox, utilisez le même nom dans le formulaire, puis définissez la classe de paramètres multipartfile comme tableau dans l'action.
Implémentation suivante:
1. Créez un formulaire qui télécharge plusieurs fichiers:
<body> <h2> Téléchargez plusieurs instances de fichiers </h2> <form action = "filesupload.html" Method = "Post" ENCTYPE = "Multipart / Form-data"> <p> Sélectionnez Fichier: <Input Type = "File" Name = "Files"> <p> SELECT FILE: <put-type = "File" Name = "Files"> <p> SELECT FILE: <Entrée Type = "File" Name = "File type = "soumi" value = "soumi"> </ form> </body>
2. Écrivez une action pour traiter le formulaire et rédiger une méthode distincte pour enregistrer le fichier pour faciliter le partage:
/ *** * Enregistrer le fichier * @param fichier * @return * / private boolean SaveFile (fichier multipartFile) {// Déterminez si le fichier est vide if (! File.isempty ()) {try {// file enregistrer la chaîne de path filepath = request.getSession (). GetServletContext (). GetRealPath ("/") + "upload /" + file.getorigoralig // transferto (nouveau fichier (filepath)); Retour Vrai; } catch (exception e) {e.printStackTrace (); }} return false; } 3. Écriture d'action: @RequestMapping ("FilesUpload") public String filespload (@RequestParam ("Files") Multiartfile [] fichiers) {// juge le tableau de fichiers ne peut pas être vide et sa longueur est supérieure à 0 si (fichiers! = Null && files.length> 0) {// Loop pour obtenir le fichier dans le tableau de fichiers pour (int i = 0; i <louth; Fichier multipartFile = fichiers [i]; // Enregistrer le fichier SaveFile (fichier); }} // rediriger le retour "redirect: /list.html"; }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.