Le téléchargement de fichiers est l'un des scénarios courants sur Internet. La situation la plus typique consiste à télécharger des avatars, etc. Aujourd'hui, je vous emmènerai pour faire un petit cas de téléchargement de fichiers dans Spring Boot.
1. Configuration du pack POM
Nous utilisons la dernière version 1.5.9 de Spring Boot, JDK utilise 1.8, TOMCAT8.0.
<parent> <proupId> org.springframework.boot </proupId> <ErtifactId> printemps-boot-starter-Parent </ artifactId> <version> 1.5.9.release </ version> </parent> </properties> <java.version> 1.8 </java.version> </properties> <pèdres> <Dependance> <GroupId> org.springframework.boot </proupId> <Ertifactid> printemps-boot-starter-web </lefactive> </dendency> <dependency> <proupId> org.springframework.boot </proupactid> <eartfactid> printech-boot-starter-thyleleaf </tatifactid> <GroupId> org.springframework.boot </prômId> <Ertifactid> printemps-boot-devtools </ artifactid> <ochotéal> true </opultal> </dependency> </dpendances>
Spring-boot-starter-thymeleaf est introduit comme moteur de modèle de page et écrivez quelques exemples de téléchargement simples.
2. Paramètres de classe de démarrage
@Springbootapplicationpublic class fileuploadwebapplication {public static void main (string [] args) lève exception {springApplication.run (fileuploadwebapplication.class, args); } // Tomcat Large File Téléchargement Connexion Réinitialiser @Bean public TomCatembedDeservletContainerFactory TomCatembedDed () {TomCatembedDeservletContainerFactory Tomcat = new tomcatembeddededServletContainerFactory (); tomcat.addconnectorCustomzers ((tomcatconnectorCustomzer) connecteur -> {if ((connector.getProtoColHandler () d'instance d'AbstractThTp11Protocol <?>)) {// - 1 signifie illimite connector.getProtoColHandler ()). setMaxWallowSize (-1);}}); Retour Tomcat; }}Le code TomCateMedded consiste à résoudre le problème de la réinitialisation de la connexion lors du téléchargement de fichiers supérieur à 10 m. Ce contenu d'exception n'est pas non plus capturé par Globalexception.
Référence détaillée du contenu: Tomcat Large Fichier Téléchargez la connexion
3. Écrivez une page frontale
Page de téléchargement
<! Doctype html> <html xmlns: th = "http://www.thymeleaf.org"> <body> <h1> Exemple de téléchargement de fichier de démarrage de printemps </h1> <form méthode = "post" action = "/ upload" EncType = "multipart / form-data"> <entrée = "file" nom = "file" /> <br/> <boupe type = "file" nom = "file" /> <br/> <bout-type = "file" nom = "file" /> type = "soumi" value = "soumi" /> </ form> </body> </html>
Une demande de message très simple, une boîte de sélection pour sélectionner un fichier et un bouton de soumission, l'effet est le suivant:
Page d'affichage des résultats de téléchargement:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <body> <h1> Spring Boot - upload status </ h1> <div th: if = "$ {message}"> <h2 th: text = "$ {message}" /> </ div>Les rendus sont les suivants:
4. Classe de contrôle de téléchargement d'écriture
Visitez LocalHost pour passer automatiquement à la page de téléchargement:
@GetMapping ("/") public String index () {return "upload";}Télécharger le traitement des services
@Postmapping ("/ upload") public String singleFileUpload (@RequestParam ("File") Fichier multipartFile, RedirectAttributes Redirectattributes) {if (file.isempty ()) {redirectattributes.addflashAttribute ("message", "Veuillez sélectionner un fichier pour télécharger"); retourner "Redirection: uploadStatus"; } essayez {// Obtenez le fichier et enregistrez-le quelque part Byte [] bytes = file.getBytes (); Path path = paths.get (uploaded_folder + file.getoriginalFileName ()); Files.write (chemin, octets); redirectattributes.addflashAttribute ("message", "Vous avez téléchargé avec succès '" + file.getoriginalFileName () + "'"); } catch (ioException e) {e.printStackTrace (); } return "redirect: / uploadstatus";}Le code ci-dessus signifie que les informations du fichier sont lues via MultipartFile, si le fichier est vide, passez à la page de résultats et donnez une invite; Si le flux de fichiers n'est pas vide et écrit dans le répertoire spécifié, le résultat sera affiché sur la page.
MultipartFile est une classe d'encapsulation pour les fichiers de printemps, qui contient des informations telles que les flux binaires et les attributs de fichiers. Les attributs pertinents peuvent également être configurés dans le fichier de configuration. Les informations de configuration de base sont les suivantes:
printemps.http.multupart.enabled = true #default Fichier pris en charge upload.spring.http.multiparpart.file-size-threshold = 0 #Support File Writing à disk.spring.http.multipart.location = # Temporary Directory pour les fichiers de téléchargement Spring.http printemps.http.multipart.max-request-size = 10 Mo # taille maximale de la demande prise en charge
Les plus couramment utilisés sont les deux derniers contenus de configuration, qui limitent la taille de téléchargement de fichiers. Si le fichier dépasse la taille, une exception sera lancée lors du téléchargement:
Pour plus d'informations sur la configuration, veuillez vous référer à ici: Propriétés de l'application courantes
5. Manipulation des exceptions
@ControlleRAdvicePublic Class GlobalexceptionHandler {@ExceptionHandler (Multiparrexception.class) Public String HandleError1 (Multiparrexception E, Redirectattributes RedirectAttributes) {redirectattributes.adddflashAttribute ("message", e.getcause (). GetMessage ()); return "redirect: / uploadstatus"; }}Définissez un @ControllerAdvice pour surveiller si la taille du fichier téléchargée par multiparte est limitée. Lorsque cette exception se produit, une invite est donnée sur la page frontale. Vous pouvez faire beaucoup de choses avec @ControllerAdvice, comme la manipulation mondiale des exceptions unifiées, etc. Les étudiants intéressés peuvent se rendre à cela.
6. Résumé
Cette démonstration simple de téléchargement de fichiers à l'aide de Spring Boot est terminée. Les étudiants intéressés peuvent télécharger l'exemple de code et l'essayer.
se référer à:
Exemple de code - github
Exemple de nuage de code de code
Résumer
Ce qui précède est ce que l'éditeur vous a présenté à l'aide de la fonction de téléchargement de fichiers de démarrage Spring. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!