Cet article partage le code spécifique du téléchargement de fichiers de démarrage de Spring pour votre référence. Le contenu spécifique est le suivant
1. Créez un projet Web Maven, puis configurez le fichier pom.xml et ajoutez des dépendances:
<dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-web </etefactId> <version> 1.0.2.release </-version> </Dependance>
2. Entrez un formulaire dans le fichier index.jsp dans le répertoire WebApp:
<html> <body> <form méthode = "Post" ENCTYPE = "multipart / form-data" action = "/ upload"> File à télécharger: <input type = "file" name = "file"> <r /> name: <input type = "text" name = "name"> <r /> <r /> <entrée type = "soumettre" value = "upload"> Appuyez ici pour upload the file! </ form> </ody>
Ce formulaire est notre page de téléchargement simulé
3. Écrivez un contrôleur qui traite ce formulaire:
Importer java.io.BufferedOutputStream; Importer java.io.file; Importer java.io.fileOutputStream; 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.bind.annotation.ResponseBody; import org.springframework.web.multupar.MultiPartFile; @Controller public class FileuploadController {@RequestMapping (value = "/ upload", méthode = requestMethod.get) public @ResponseBody String fournitploadInfo () {return "Vous pouvez télécharger un fichier en publiant sur cette même URL.";; } @RequestMapping (value = "/ upload", méthode = requestMethod.post) public @ResponseBody String handleFileupload (@RequestParam ("name") String name, @RequestParam ("file") File multipartFile) {if (! File.isempty ()); BufferedOutputStream Stream = new BufferedOutputStream (new FileOutputStream (nouveau fichier (nom + "-uploaded"))); Stream.Write (octets); Stream.Close (); return "Vous avez réussi à télécharger" + nom + "dans" + name + "-uploaded!"; } catch (exception e) {return "vous avez échoué à télécharger" + name + "=>" + e.getMessage (); }} else {return "Vous n'avez pas réussi à télécharger" + name + "parce que le fichier était vide."; }}}4. Ensuite, nous avons quelques restrictions sur les fichiers téléchargés et écrivez la méthode principale pour démarrer le Web:
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.enableAutoConfiguration; import org.springframework.boot.context.embedded.MultipartingConfigFactory; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.componentscan; import org.springframework.context.annotation.configuration; Importer javax.servlet.MultipartingConfigelement; @Configuration @componentscan @enableAutoConfiguration Public Class Application {@Bean public multipartConfigelement MultipartConfigelement () {multipartConfigFactory Factory = new multipartConFigFactory (); factory.setMaxFileSize ("128KB"); factory.setMaxRequestSize ("128KB"); return factory.CreateMultiPartConfig (); } public static void main (String [] args) {springApplication.run (application.class, args); }}5. Visitez ensuite http: // localhost: 8080 / upload pour voir la page.
L'exemple ci-dessus implémente la fonction de téléchargement d'un seul fichier. En supposant que nous voulons implémenter la fonction du téléchargement par lots de fichiers maintenant, nous devons seulement modifier le code ci-dessus. Compte tenu du problème de longueur, ce qui suit n'est qu'un code différent de ce qui précède, et les descriptions ne sont pas affichées comme ci-dessus. :
1. Ajouter un fichier batchupload.jsp
<html> <body> <form methody = "post" EncType = "multipart / form-data" action = "/ Batch / upload"> Fichier à télécharger: <entrée type = "file" name = "file"> <br /> Fichier à télécharger: <entrée type = "file" name = "file"> <br /> <entrée type = "soumettre" value = "upload"> Appuyez ici pour Upload the Fichier! </ form> </body> </html>
2. Ajouter le fichier BatchFileUploadController.java:
import org.springframework.stereType.Controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multupar.MultiPartFile; import org.springframework.web.multupar.MultiparthTTPServletRequest; Importer javax.servlet.http.httpservletRequest; Importer java.io.BufferedOutputStream; Importer java.io.file; Importer java.io.fileOutputStream; Importer java.util.list; / ** * Créé par Wenchao.ren le 2014/4/26. * / @Controller public class batchFileUploadController {@RequestMapping (value = "/ batch / upload", méthode = requestMethod.Post) public @ResponseBody String handleFileUpLoad (httSerSerTrequest request) {list <multipartFile> filess = ((multiparthTTTServeRequest) request) .getFiles ("file"); for (int i = 0; i <files.size (); ++ i) {multipartFile file = files.get (i); String name = file.getName (); if (! file.isempty ()) {try {byte [] bytes = file.getBytes (); BufferedOutputStream Stream = new BufferedOutputStream (new FileOutputStream (nouveau fichier (nom + i))); Stream.Write (octets); Stream.Close (); } catch (exception e) {return "vous avez échoué à télécharger" + name + "=>" + e.getMessage (); }} else {return "Vous n'avez pas réussi à télécharger" + name + "parce que le fichier était vide."; }} return "télécharger réussi"; }}Une telle fonction de téléchargement par lots est OK, n'est-ce pas très simple?
Remarque: Le code ci-dessus est juste pour la démonstration, donc le style de codage adopte une approche occasionnelle, et il n'est pas recommandé que tout le monde l'imite.
Référence: MultipartreSolver implémente la fonction de téléchargement de fichiers
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.
1. MultipartreSolver peut également implémenter la fonction de téléchargement de fichiers. Article de référence: