Vor kurzem habe ich beim Erstellen einer Website mit Spring Boot auf ein Problem gestoßen: Bei der Registrierung muss der Benutzer ein eigenes Profilbild hochladen. Nach erfolgreicher Registrierung sprang er in das persönliche Zentrum und zeigte Benutzerinformationen im persönlichen Zentrum an. Bei der Anzeige des Profilbildes stieß ich auf ein Problem: Beim Hochladen des Profilbildes habe ich das Profilbild im statischen Ordner unter der Projektdatei gespeichert, seine Adresse im entsprechenden Benutzer in der Datenbank gespeichert und fügte ein heißes Bereitstellen in der Idee hinzu. Nach dem Registrieren und Springen in das persönliche Zentrum kann das Profilbild nicht angezeigt werden. Es ist nur möglich, wenn das Projekt das nächste Mal gestartet wird, wenn ich das persönliche Zentrum betrete.
Ich war lange Zeit von diesem Problem beunruhigt und habe es schließlich so gelöst: Ich habe einen neuen WebApp -Ordner im Hauptverzeichnis erstellt und seinen Pfad konfiguriert. Das Folgende ist eine kleine Demo der Lösung. Es ist relativ einfach zu tun. Bitte vergib mir ~~ Der Kerncode lautet wie folgt:
Registrierungsschnittstelle:
<! DocType html> <html Lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <titel> Titel </title> </head> <body> <Form Action = "/Zhuce" th: action = "|@@| engType = "MultiPart/Form-Data"> <label> Name </Label> <Eingabe type = "text" name = "name"/> <label> Kennwort </Label> <Eingabe type = "password" name = "kennwort"/> <label> Uploaded das Bild </label> <Eingabe type = "Datei" name "name"/".
Die Kontrolle lautet wie folgt:
paket com.example.demo.control; import com.example.demo.dao.userrepository; import com.example.demo.domain.user; import org.springframework.bean.factory.Annotation.autowired; org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.postmapping; Java.io.*;/*** Erstellt bis 18274 am Jahr 2017/8/9. */ @ControllerPublic Class Control {@autowired userRepository userRepository; @GetMapping (value = "/zhuce") public string zhuce () {return "zhce"; } @Postmapping (value = "/zhuce") public String tijiao (@RequestParam (value = "name") String -Name, @RequestParam (value = "password") String -Passwort, @RequestParam (value = "Datei") multiPartFile -Datei, Modellmodell) {user user = new user (); user.setUserName (Name); user.setPassword (Passwort); if (! file.isempty ()) {try {bufferedOutputStream out = new bufferedOutputStream (new FileOutputStream (neue Datei ("f: // flag cup // Demo5 // src // main // webapp //"+name+". OUT.CLOSE (); e.getMessage ();Persönliches Zentrum:
<! DocType html> <html Lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <Meta charset = "utf-8"/> <title> Titel </title> </head> <body> <P> Username: </p> <p> <p> <p> th: text = "$ {user.username}"> </p> <p> Bild: </p> <img th: src = "@{$ {user.username}+'. jpg'}"/> </body> </html>Konfiguration des WebApp -Pfades
paket com.example.demo.config; import org.springframework.context.annotation.configuration; import org.springframework.web.servlet.config.annotation * Erstellt bis 18274 am Jahr 2017/8/9. */ @ConfigurationPublic class MyWebappConfiger erweitert WebMVCConFigurerAdapter {@Override public void addResourceHandlers (RessourcenHandlerRegistry -Registrierung) {Registry.AddresourceHandler ("/src/main/webapp/**"). Super.AddresourceHandlers (Registrierung); }}Entsprechende Benutzerentitätsklasse:
Paket com.example.demo.domain; import Javax.Persistence.Entity; Import Javax.Persistence.generatedValue; Import Javax.Persistence.id;/*** Erstellt von 18274 am 2017/8/9. */ @EntityPublic Class User {@id @generatedValue private long id; privater String -Benutzername; privates Zeichenfolgenkennwort; private String tupian; // Bildadresse public user () {} public Long getId () {return id; } public String getUnername () {return userername; } public String getPassword () {Kennwort zurückgeben; } public String gettupian () {return tupian; } public void setId (Long id) {this.id = id; } public void setUnername (String -Benutzername) {this.username = userername; } public void setPassword (String -Passwort) {this.password = password; } public void settupian (String tupian) {this.tupian = tupian; }}Schnittstelle zur Benutzerentitätsklasse:
paket com.example.demo.dao; import com.example.demo.domain.user; import org.springframework.data.jpa.repository.jparepository;/*** erstellt von 18274 am 2017/8/9. */public interface userRepository erweitert JParepository <Benutzer, Long> {}Laufen Sie schließlich wie folgt:
Registrieren Sie sich, um Avatar hochzuladen:
Persönliches Zentrum:
PS: Wenn Sie die Frühlingssicherheit kombinieren, müssen Sie nur Informationen von Session.spring_security_context.authentication.principal.xxx erhalten.
Fügen Sie die Adresse dieser kleinen Demo hinzu:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Zusammenfassen
Das obige ist die Zusammenfassung der Spring -Boot -Implementierung, die Bilder hochladen und auf der Seite angezeigt und Probleme begegnen. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!