Recientemente, encontré un problema en el proceso de construcción de un sitio web utilizando Spring Boot: al registrarme, el usuario necesita cargar una foto de perfil propia. Después de un registro exitoso, saltó al centro personal y mostró información del usuario en el centro personal. Encontré un problema al mostrar la imagen de perfil: al cargar la imagen de perfil, almacené la imagen de perfil en la carpeta estática en el archivo del proyecto, almacené su dirección en el usuario correspondiente en la base de datos y agregué una implementación en caliente en la idea, pero después de registrar y saltar al centro personal, aún no puede mostrar la imagen de perfil. Solo es posible cuando el proyecto se lanza la próxima vez que ingrese al centro personal.
Me preocupaba este problema durante mucho tiempo, y finalmente lo resolví así: creé una nueva carpeta de la aplicación web en el directorio principal y configuré su ruta. La siguiente es una pequeña demostración de la solución. Es relativamente simple de hacer, por favor perdóname ~~ El código central es el siguiente:
Interfaz de registro:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <Head> <meta charset = "utf-8"/> <title> title </title> </head> <body> <form action = "/zhuce" th: action = "@{{{{{{{zhuce}" enctype = "multipart/form-data"> <lelter> name </etiqueta> <input type = "text" name = "name"/> <label> contraseña </etiqueta> <input type = "contraseña" name = "contraseña"/> <label> cargar la imagen </etiqueta> <input type = "file" name = "archivo"/> <input type = "enviar" valor = "umber =" umber "umber"/<</formy> </body </html> html> <html>El control es el siguiente:
paquete 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.springfringframework.stereotype.controller; importar orgfringfringframe org.springframework.web.bind.annotation.getMapping; import org.springframework.web.bind.annotation.postmapping; import org.springframework.web.bind.annotation.requesteStest; import og.springfringframe.web.multipart.multipartfile; importación de importación; 18274 el 2017/8/9. */ @ControlerPublic Class Control {@aUtoWired UserRepository UserRepository; @GetMapping (valor = "/zhuce") public String zhuce () {return "zhuce"; } @PostMapping (value = "/zhuce") Public String Tijiao (@RequestParam (value = "name") Nombre de cadena, @RequestParam (value = "Password") String Password, @RequestParam (value = "File") Archivo multipartfile, Modelo Modelo) {Usuario de usuario = nuevo usuario (); user.setUsername (nombre); user.setPassword (contraseña); if (! file.isEmpty ()) {try {bufferedOutputStream out = new BufferedOutputStream (new FileOutputStream (nuevo archivo ("f: // flag cup // Demo5 // src // main // webapp //"+name+". jpg"); // guarda la imagen en el directorio en el directorio? out.close (); } Catch (IOException E) {E.PrintStackTrace ();Centro personal:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <Head> <meta charset = "utf-8"/> <title> title </title> </head> <body> <p> username: </p> <p> <p> <p> th: text = "$ {user.username}"> </p> <p> imagen: </p> <img th: src = "@{$ {user.username}+'. jpg'}"/> </body> </html>Configuración de la ruta de la aplicación web
paquete com.example.demo.config; import org.springframework.context.annotation.configuration; import org.springframework.web.servlet.config.annotation.resourceHandlerRegistry; import org.springframe.web.servlet.config.annotation.webmvcconfconfigery; 18274 el 2017/8/9. */ @ConfigurationPublic Class myWebAppConfigurer extiende WebMVCConfigurerAdApter {@Override public void addResourceHandlers (ResourceHandlerRegistry Registry) {Registry.AddresourceHandler ("/src/main/webApp/**"). AddResourCelocations ("classpath:/webapp/"); super.AddResourceHandlers (Registro); }}Clase de entidad de usuario correspondiente:
paquete com.example.demo.domain; import javax.persistence.entity; import javax.persistence.generatedValue; import javax.persistence.id;/*** creado por 18274 el 2017/8/9. */ @EntityPublic Class User {@id @GeneratedValue Private Long id; nombre de usuario de cadena privada; contraseña de cadena privada; privado cadena tupian; // Imagen dirección pública user () {} public Long getId () {return id; } public String getUsername () {return UserName; } public String getPassword () {return Password; } public String getTupian () {return tupian; } public void setid (ID long) {this.id = id; } public void setUsername (String UserName) {this.Username = username; } public void setPassword (String Password) {this.password = contraseña; } public void Settupian (String Tupian) {this.tupian = Tupian; }}Interfaz a la clase de entidad de usuario:
paquete com.example.demo.dao; import com.example.demo.domain.user; import org.springframework.data.jpa.repository.jparpository;/*** creado por 18274 en 2017/8/9. */Public Interface UserRepository extiende jParepository <User, Long> {}Finalmente corre de la siguiente manera:
Regístrese para cargar avatar:
Centro personal:
PD: Si está combinando la seguridad de Spring, solo necesita obtener información de Session.Spring_Security_Context.Authentication.PRIPAL.XXX.
Adjunte la dirección de esta pequeña demostración cargada:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Resumir
Lo anterior es el resumen de las imágenes de carga de implementación de arranque de primavera y mostrarlas en la página y encontrar problemas. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!