Conseils aimables
Dans le système de gestion des membres de Spring Boot, il est nécessaire d'impliquer le framework Spring, le framework SpringMVC, le framework Hibernate et le moteur de modèle Thymeleaf. Par conséquent, vous pouvez apprendre ces connaissances. Bien sûr, il est normal de l'utiliser directement si vous commencez, mais cela peut être un peu difficile si vous impliquez quelques exceptions et principes.
1. Partie frontale
Dans la pièce frontale, AddMember.html soumet les informations des membres via le formulaire de formulaire, qui inclut la fonction de téléchargement d'image (l'opération de téléchargement de fichiers est impliquée). Le code dans la partie de la forme est le suivant:
<formulaire th: Action = "@ {/ admin / addMember}" Method = "Post" EncType = "multipart / form-data" id = "addMember"> <div> <div> <span> SELECT AVATAR FILE </ span> <entrée id = "file" type = "file" name = "iconpath" multiple = "" PlaceHolder = "SELECT FILE" Accept = "Image / * *" Onchange </ div> <v> <! - <input type = "text" placeholder = "télécharger un ou plusieurs fichiers"> -> <img id = "myimg" src = "actifs / iconpath / commun.jpg" /> </ div> <! - Avatar File upload aperview -> <script> function id (id) {return document.getelementById (id); } fonction changetoop () {var file = id ("file"); if (file.value === '') {// Définissez l'ID d'image par défaut ("MyImg"). Src = 'Assets / iconPath / Common.jpg'; } else {preimg ("file", "myimg"); }} // Obtenez l'URL de l'image d'entrée [Fichier] Fonction importante GetFileUrl (FileID) {var URL; var file = id (fileId); var agent = Navigator.UserAgent; if (agent.indexof ("msie")> = 1) {url = file.value; } else if (agent.indexof ("firefox")> 0) {url = window.url.createObjectUrl (file.files.item (0)); } else if (agent.indexof ("chrome")> 0) {url = window.url.createObjectUrl (file.files.item (0)); } URL de retour; } // Fonction de prévisualisation après avoir lu l'image preimg (fileId, imgid) {var imgpre = id (imgid); imgpre.src = getFileUrl (fileId); } </ script> </div> ......... </ form> Il y a une note ici: car elle implique le téléchargement de fichiers, enctype="multipart/form-data" doit être ajouté pour former, et l'attribut de nom dans l'entrée correspond au nom du paramètre entrant de la méthode de mappage du contrôleur dans le backend.
2. Implémentation du code backend
Dans le backend, le framework SpringMVC peut traiter les fichiers, puis nous pouvons recevoir les fichiers en transmettant les paramètres.
2.1 Contrôleur gère les fichiers entrants
Le code est le suivant:
@Postmapping ("/ addMember") public String addMember (membre membre, String Gradename, icône multipartfile, map <string, objet> modèle) {// Traitement de fichiers téléchargées try {if (icon == null) // Déterminez d'abord si le fichier téléchargé est null return "error"; if (icon.getoriginalFileName (). equals ("")) // Si le nom d'origine du fichier téléchargé est une chaîne vide, il est prouvé que l'image par défaut .seticonPath ("/ actifs / icon / commun.jpg"); // Définit en tant qu'image par défaut Pathelse // Ici, je traite le multipartfile téléchargé en passant la classe d'outils de téléchargement de fichiers que j'ai écrite. Le nom de fichier est défini sur la chaîne membre.seticonPath (fileuploadUtil.upload (icon, "/ actifs / icon /", uuidrandomutil.get32uuid ())); } catch (exception e) {e.printStackTrace (); return "erreur"; } ..... return "addMembersuCcess"; }2.2 Classe d'outils FileuploadUtil enregistre les fichiers
Une fois le fichier multipartfile du contrôleur, il doit être converti davantage en fichier et enregistré en disque, je l'ai donc traité séparément et remis le fichier entrant du contrôleur dans la classe d'outils FileuploadLoadloadUtil pour le traitement. Le code spécifique est le suivant:
classe publique FileUploadUtil {/ ** * téléchargement de fichiers * @param multipartfile multipartfile * @param prefixpath prefixpath, relatif au chemin de l'ensemble du projet, il n'est pas nécessaire d'ajouter "/" au début du chemin * @param filename uplowed nom * @return le chemin final et à la téléchargement + filename * @hrows exception, il est possible Exceptions * / public static String upload (multipartFile MultipartFile, String PrefixPath, String FileName) lève Exception {// obtenir le chemin absolu téléchargé String uploadPath = classutils.getDefaultClassLoader (). getResource (""). getPath () + "/ static" + prefixPath; Fichier file = nouveau fichier (uploadPath); if (! file.exists ()) if (file.mkDirs ()) System.out.println ("Répertoire créé avec succès"); // obtient le suffixname téléchargé = multipartFile.getoriginalFileName (). Substring (multipartFile.getoriginalFileName (). LastIndexof (".")); // Créer un fichier de fichier finalisé = nouveau fichier (uploadPath + FileName + suffixName); multipartFile.transferto (fichier); return prefixPath + filename + suffixName; }} ClassUtils dans ce qui précède est une classe d'outils fournie par Spring, et l'appel de la méthode getDefaultClassLoader().getResource("").getPath() est d'obtenir le chemin sous le projet de classe de projet actuel.
Ce qui précède fait partie du contenu sur le téléchargement de fichiers dans ce système. Le code source de ce système est téléchargé sur GitHub et téléchargé le code source.
Résumer
Ce qui précède est la fonction de téléchargement de fichiers du système de gestion des membres de Spring Boot qui vous est présenté par l'éditeur. 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!