Недавно я столкнулся с проблемой в процессе создания веб -сайта с использованием Spring Boot: при регистрации пользователь должен загрузить собственную фотографию профиля. После успешной регистрации он прыгнул в личный центр и отобразил информацию пользователя в личном центре. Я столкнулся с проблемой при отображении изображения профиля: при загрузке изображения профиля я сохранил изображение профиля в статической папке под файлом проекта, сохранял его адрес в соответствующем пользователе в базе данных и добавил горячее развертывание в идее, но после регистрации и прыжка в личный центр, оно все еще не может отобразить изображение профиля. Это возможно только тогда, когда проект будет запущен в следующий раз, когда я войду в личный центр.
Я был обеспокоен этой проблемой в течение долгого времени и, наконец, решил ее так: я создал новую папку WebApp в главном каталоге и настроил его путь. Ниже приведена небольшая демонстрация решения. Это относительно просто сделать, пожалуйста, простите меня ~~ Основной код заключается в следующем:
Регистрационный интерфейс:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <Head> <meta charset = "utf-8"/> <tite> title </title> </head> <body> <form action = "/zhuce"/action = "@{/zhuce"@{/jhuce "@{/zhuce"@{/zhuce "@{/zhuce"@{/zhuce "@{/zhuce"@{/zhuce "@{/zhuce"@ ectype = "multipart/form-data"> <babel> name </label> <input type = "text" name = "name"/> <label> пароль </label> <input type = "password" name = "password"/> <label> Загрузите изображение </label> <input type = file "file"/> <input = "Отправить value = "upload"/> </form> </body> </html>Управление следующим образом:
пакет com.example.demo.control; import com.example.demo.dao.userRepository; import com.example.demo.domain.user; импорт org.springframework.beans.factory.annotation.autowired; импорт org.spramework.stepotype.controller; org.springframework.web.bind.annotation.getMapping; импорт org.springframework.web.bindtation.postmapping; импорт org.springframework.web.bindtation.requestparam; import org.spramework.web.multipart.multipart. 18274 2017/8/9. */ @Controllerpublic class control {@autowired userRepository userRepository; @Getmapping (value = "/zhuce") public String zhuce () {return "zhuce"; } @Postmapping (value = "/zhuce") public String tijiao (@RequestParam (value = "name") String name, @RequestParam (value = "password") String Password, @RequestParam (value = "file") MultipartFile файл, модель модели) {user user = new user (); user.setusername (имя); user.setpassword (пароль); if (! file.isempty ()) {try {bufferedOutputStream out = new BufferedOutputStream (new FileOutputStream (новый файл ("f: // flag cup // demo5 // src // main // webapp //"+name+". out.close (); } catch (ioException e) {e.printstacktrace ();Личный центр:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> tit th: text = "$ {user.username}"> </p> <p> изображение: </p> <img th: src = "@{$ {user.username}+'. jpg'}"/> </body> </html>Конфигурация пути веб -приложения
пакет com.example.demo.config; import org.springframework.context.annotation.configuration; импорт org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springFramework.web.servlet.annotation.webrameR.WerbRegRegRegRegRegRegRegRegRegRegRegRegRegramerame.Web.Serv.NewR.WebRegRegRameramework.Web.Serv 18274 2017/8/9. */ @ConfigurationPublic Class MyWebAppConfigurer Extends webmvcconfigurerAdapter {@override public void addresourcehandlers (Реестр ресурсов) {реестр. Addresourcehandler ("/src/main/webapp/**"). Addresourcelocations ("classpath:/webapp/"). Super.AddresourceHandlers (реестр); }}Соответствующий класс объектов пользователя:
пакет com.example.demo.domain; импорт javax.persistence.entity; import javax.persistence.generatedValue; импорт javax.persistence.id;/*** Создан 18274 г. на 2017/8/8/9. */ @EntityPublic Class User {@ID @GeneratedValue Private Long ID; частное имя пользователя; Private String Password; Private String tupian; // Адрес изображения public user () {} public long getId () {return id; } public String getUsername () {return username; } public String getPassword () {return пароль; } 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 password) {this.password = password; } public void settupian (String tupian) {this.tupian = tupian; }}Интерфейс к классу объектов пользователя:
пакет com.example.demo.dao; import com.example.demo.domain.user; import org.springframework.data.jpa.repository.jparepository;/*** Создан к 18274 году на 2017/8/8/9. */public userRepository Extends jparePository <user, long> {}Наконец -то бегите следующим образом:
Зарегистрируйтесь, чтобы загрузить аватар:
Личный центр:
PS: Если вы объединяете Spring Security, вам нужно только получить информацию от Session.spring_security_context.authentication.principal.xxx.
Прикрепите адрес этой небольшой демонстрации, загруженной:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Суммировать
Выше приведено сводная информация о реализации Spring Boot, загружающего изображения, отображает их на странице и столкнулась с проблемами. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!