Récemment, j'ai rencontré un problème dans le processus de création d'un site Web à l'aide de Spring Boot: lors de l'enregistrement, l'utilisateur doit télécharger sa propre photo de profil. Après une inscription réussie, il a sauté dans le centre personnel et a affiché des informations utilisateur dans le centre personnel. J'ai rencontré un problème lors de l'affichage de l'image de profil: lors du téléchargement de l'image de profil, j'ai stocké l'image de profil dans le dossier statique sous le fichier du projet, stocké son adresse dans l'utilisateur correspondant dans la base de données et ajouté un déploiement chaud dans l'idée, mais après s'être inscrit et sauté au centre personnel, il ne peut toujours pas afficher l'image de profil. Ce n'est possible que lorsque le projet est lancé la prochaine fois que j'entre dans le centre personnel.
J'ai été troublé par ce problème pendant longtemps, et je l'ai finalement résolu comme ceci: j'ai créé un nouveau dossier WebApp dans le répertoire principal et configuré son chemin. Ce qui suit est une petite démo de la solution. Il est relativement simple à faire, veuillez me pardonner ~~ Le code central est le suivant:
Interface d'enregistrement:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> </ head> <meta charset = "utf-8" /> <itle> title </ title> </ head> <bory> <form action = "/ zhuce" th: action = "@ @ {/ zhuce}" "Post =" Post = "Post" ENCTYPE = "Multipart / Form-Data"> <Belle> Name </ Label> <Input Type = "Text" Name = "Name" /> <Beld> Mot de passe </ Label> <Input Type = "Password" Name = "Motword" /> <Babeld> Téléchargez l'image </ Label> <Input Type = "File" Name = "File" /> <Input Type = "Soumider" Value = "Upload" /> </ Form> </ Body> <HTML>Le contrôle est le suivant:
package com.example.demo.control; import com.example.demo.dao.userRepository; import com.example.demo.domain.user; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.ConTroller; import org.springframework.uii. org.springframework.web.bind.annotation.getMapping; import org.springframework.web.bind.annotation.postmapping; import org.springframework.web.bind.annotation.requestParam; import org.springframework.web.multipart.multipartfile; import java. / ** * ** *. 18274 le 2017/8/9. * / @ ControllerPublic class Control {@autowired userRepository userRepository; @GetMapping (value = "/ zHuce") String public zHuce () {return "zHuce"; } @Postmapping (value = "/ zHuce") String public tijiao (@RequestParam (value = "name") Nom de la chaîne, @RequestParam (value = "mot de passe") Mot de passe de chaîne, @RequestParam (value = "file") Fichier multipartFile, modèle modèle) {user user = new Uset (); user.setUsername (nom); user.setpassword (mot de passe); if (! file.isempty ()) {try {bufferedOutputStream out = new BufferedOutputStream (new FileOutputStream (nouveau fichier ("f: // Flag Cup // Demo5 // src // main // webApp /" + name + ". Jpg")); // enregistrer l'image de la répertoire out.write (file.getbytes ()); Out.close (); String FileName = "F: // Flag } Catch (ioException e) {e.PrintStackTrace ();Centre personnel:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <read> <meta charset = "utf-8" /> <itle> title </ title> </ head> <pody> <p> username: </p> <P> <P> th: text = "$ {user.username}"> </p> <p> image: </p> <img th: src = "@ {$ {user.username} + '. jpg'}" /> </ body> </ html>Configuration du chemin WebApp
package com.example.demo.config; import org.springframework.context.annotation.configuration; import org.springframework.web.servlet.config.annotation.resourcehandlergistry; import org.springframework.wovera.servlet.config.annotation.webmvcconfigèreadaptte; 18274 le 2017/8/9. * / @ ConfigurationPublic class MyWebAppConfigurer étend webmvcconfigurerAdapter {@Override public void addResourceHandlers (ResourceHandlerRegistry Registry) {registry.AddreSourceHandler ("/ src / webApp / webApp / **"). AddResourceLedler ("classPath: / webApp /"); super.AddreSourceHandlers (registre); }}Classe d'entité utilisateur correspondante:
package com.example.demo.domain; import javax.persistence.entity; import javax.persistence.generatedValue; import javax.persistence.id; / ** * créé par 18274 le 2017/8/9. * / @ EntityPublic Class User {@id @GeneratedValue Private Long ID; Nom d'utilisateur de chaîne privée; mot de passe de chaîne privé; String privé Tupian; // Adresse d'image public public () {} public long getID () {return id; } public String getUserName () {return username; } public String getPassword () {return mot de passe; } public String gettupian () {return Tupian; } public void setid (long id) {this.id = id; } public void setUsername (String username) {this.userName = username; } public void setPassword (String Motword) {this.password = mot de passe; } public void Settupian (String Tupian) {this.tupian = Tupian; }}Interface à la classe d'entité utilisateur:
package com.example.demo.dao; import com.example.demo.domain.user; import org.springframework.data.jpa.repository.jParepository; / ** * créé par 18274 le 2017/8/9. * / interface publique UserRepository étend JParePository <utilisateur, long> {}Exécutez enfin comme suit:
Inscrivez-vous pour télécharger Avatar:
Centre personnel:
PS: Si vous combinez Spring Security, vous n'avez qu'à obtenir des informations à partir de session.spring_security_context.authentication.principal.xxx.
Joignez l'adresse de cette petite démo téléchargée:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Résumer
Ce qui précède est le résumé de la mise en œuvre de l'implémentation de Spring Boot, le téléchargement des images et les affichage sur la page et les problèmes de rencontre. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!